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

时间:2014-06-19 02:27:25

标签: javascript

我在页面加载后根据如下条件加载脚本:

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()正在执行,我相信。那么,一旦我刚刚添加的脚本加载完成后,我怎么能告诉它运行该函数?

2 个答案:

答案 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开发人员网络)