我在页面加载后根据如下条件加载脚本:
function isScriptAlreadyIncluded(src){
var scripts = document.getElementsByTagName("script");
for(var i = 0; i < scripts.length; i++){
if(scripts[i].getAttribute('src') === src) return true;
else return false;
}
}
if(isScriptAlreadyIncluded('contextualConversation.js')) contextualReplace();
else{
var cCScript = document.createElement('script');
cCScript.src = 'contextualConversation.js';
contextualReplace();
}
我的问题是,在脚本加载之前,else中的contextualReplace()
正在执行,我相信。那么,一旦我刚刚添加的脚本加载完成后,我怎么能告诉它运行该函数?
答案 0 :(得分:0)
您可能会尝试这样做:
html文件
<script>
function onScriptLoad()
{
alert('script loaded');
}
//your logic to append script tag
</script>
要加载的js文件
//your other script
(function()
{
onScriptLoad(); //<-- invoke here
})();
答案 1 :(得分:0)
除版本9之前的IE之外,脚本会触发事件onload -
else{
var cCScript = document.createElement('script');
cCScript.onload=contextualReplace;
cCScript.src = 'contextualConversation.js';
}
(要覆盖旧的IE,您可以使用其readystatechange事件,请查看Microsoft开发人员网络)