我正在玩 javascript、加载文件和玩回调。
我目前正在使用此代码
var test_two = {};
(function(pub) {
var self = this;
pub.loadScript = function(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
script.src = url+'.js';
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function(){
callback();
};
}
console.log('Callback '+callback);
self[url] = callback;
document.getElementsByTagName("head")[0].appendChild(script);
}
})(test_two);
如果我像这样使用它,这确实有效
test_two.loadScript('loadIt', function(){
//code here
});
现在我想要的是能够做类似的事情
loaded_script = test_two.loadScript('loadIt');
或者
test_two.loadScript('loadIt', loaded_script);
并使用“loaded_script”引用加载的脚本(变量和方法)
我尝试将其自动添加到我拥有的命名空间中,如您所见
self[url] = callback;
但它涉及到未定义。
你可以看到这是用 RequireJS 完成的。
现在在你告诉我搜索之前,我整天都在搜索,没有任何答案给我我需要的东西,我不想使用 RequireJS 或 jQuery,因为我正在尝试学习这样的东西是如何工作的,而不仅仅是跳跃进入使用代码。
是否有任何页面可以帮助我真正实现我想要的,或者有人可以帮助我吗?