Javascript 使用appendChild异步加载的脚本最后加载
我创建了一个脚本,通过将它附加到Javascript 使用appendChild异步加载的脚本最后加载,javascript,Javascript,我创建了一个脚本,通过将它附加到head标记来添加javascript文件 使用我创建的以下代码: var Dim = (function(s){ var storage; function loadError (oError) { throw new URIError("The script " + oError.target.src + " is not accessible."); } return
head
标记来添加javascript文件
使用我创建的以下代码:
var Dim = (function(s){
var storage;
function loadError (oError) {
throw new URIError("The script " + oError.target.src + " is not accessible.");
}
return {
require : function(script,callback){
var oScript = document.createElement("script");
oScript.type = "text\/javascript";
oScript.onerror = loadError;
if (callback) {
oScript.onload = callback;
}
document.head.appendChild(oScript);
oScript.src = script;
}
};
})();
当我们像这样使用脚本时:
Dim.require("script.js", function(){alert(token)}); alert(token);
script.js代码是:
alert(" Ok"); var token = " Hello";
警报(令牌)
抛出错误
谁能告诉我这个问题吗
[问题已编辑]
Dim.require("script.js", function(){alert(token)}); alert(token);
它运行第一个警报,因为它在浏览器加载脚本时调用的回调中
if (callback) {
oScript.onload = callback;
}
第二个是不给你一个警告,因为它给你一个错误
未捕获引用错误:未定义令牌
您正在异步加载
script.js
,并且在执行第二个警报时,script.js
尚未加载。。我也不明白为什么会失败。@T.J.Crowder它对我的控制台说“令牌未定义”。@MMJM:上面的链接,它只是封装在plnkr中的代码,1。没有显示该错误,以及2。确实显示包含令牌内容的警报(“Hello”
)。@AlpeshJikadra:“问题是脚本已加载,但我无法使用其内容。”谢谢。我对异步不太了解scripts@MMJM检查