gpt4 book ai didi

javascript - 如何添加新脚本并等待它在 Javascript 中执行

转载 作者:行者123 更新时间:2023-12-02 17:00:16 31 4
gpt4 key购买 nike

假设我有 my-file.js 或不同服务器上的某个 CDN 文件

for (var i = 0; i < 1000; i ++) {
//something really long and hard to execute
}
//after this long execution

window.myObj = {
//initialization of some global object that I need
}

(我无法更改 my-file.js...)

我想将 my-file.js 异步添加到页面,然后在加载之后并且 执行 我想调用一些事件,例如:

//when my my-file.js is loaded I finally use window.myObj
window.myObj.somefunc(); //yaaay

这可能吗? (IE9+ 的跨浏览器对我来说很重要,但任何都不重要)

注意:如果我需要的文件位于 CDN 上或不同服务器上的某个位置 - 我需要记住跨域策略,因此我认为在这种情况下不可能在 ajax 中加载文件内容。

注2: http://www.chromestatus.com/features/5711871906676736这正是我所需要的,但我敢打赌,您需要几年时间才能在全局范围内轻松使用它。

最佳答案

var script = document.createElement('script');
script.onload = function(){
// loaded
}
document.head.appendChild(script);
script.src = "path/to/script";

这是最简单的例子。是的,整个事情都是异步的,因此它需要 onload 处理程序。

您也可以将其包装在一个函数中:

function getScript(src,callback){
var script = document.createElement('script');
script.onload = callback;
document.head.appendChild(script);
script.src = src;
}

getScript('path/to/js',function(){
//loaded
});

但是,跳出框框思考,听起来您需要依赖管理。使用RequireJS 。应该适合您的需求。

关于javascript - 如何添加新脚本并等待它在 Javascript 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790793/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com