如何判断何时加载由 document.createElement('script') 添加的脚本



我在页面加载后加载一个脚本,基于如下条件:

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
})();

最新更新