gpt4 book ai didi

javascript - 同步动态加载 JavaScript

转载 作者:IT王子 更新时间:2023-10-29 02:55:42 25 4
gpt4 key购买 nike

我正在使用 module pattern ,我想做的一件事是动态包含一个外部 JavaScript 文件,执行该文件,然后在我的模块的 return { } 中使用文件中的函数/变量。

我不知道如何轻松地做到这一点。是否有执行伪同步外部脚本加载的任何标准方法?

function myModule() {
var tag = document.createElement("script");
tag.type = "text/javascript";
tag.src = "http://some/script.js";
document.getElementsByTagName('head')[0].appendChild(tag);

//something should go here to ensure file is loaded before return is executed

return {
external: externalVariable
}
}

最佳答案

只有一种方法可以同步加载和执行脚本资源,那就是使用同步 XHR

这是一个如何做到这一点的例子

// get some kind of XMLHttpRequest
var xhrObj = createXMLHTTPObject();
// open and send a synchronous request
xhrObj.open('GET', "script.js", false);
xhrObj.send('');
// add the returned content to a newly created script tag
var se = document.createElement('script');
se.type = "text/javascript";
se.text = xhrObj.responseText;
document.getElementsByTagName('head')[0].appendChild(se);

但是您通常不应该使用同步请求,因为这会阻止其他一切。但话虽如此,当然在某些情况下这是合适的。

我可能会通过使用 onload 处理程序将包含函数重构为异步模式。

关于javascript - 同步动态加载 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2879509/

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