我在页面加载后加载一个脚本,基于如下条件:
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();
}
我的问题是,contextualReplace()
在else正在执行之前脚本已经加载,我相信。那么,一旦我刚刚添加的脚本完成加载,我如何告诉它运行该函数呢?
除了ie9之前的版本,脚本触发事件onload-
else{
var cCScript = document.createElement('script');
cCScript.onload=contextualReplace;
cCScript.src = 'contextualConversation.js';
}
(要覆盖旧的IE,你可以使用它的readystatechange事件,检查微软开发人员网络)
你可以试试这个:
html文件
<script>
function onScriptLoad()
{
alert('script loaded');
}
//your logic to append script tag
</script>
加载
//your other script
(function()
{
onScriptLoad(); //<-- invoke here
})();