动态JavaScript加载和执行

问题描述:

我想根据API调用的返回值动态加载Javascript。我动态插入脚本标记,但它不会被执行。有人能帮助理解为什么吗?相关的代码片段粘贴下面动态JavaScript加载和执行

onError: function(code) { 
     if(code == "false") { 
     var headID = document.getElementsByTagName("head")[0]; 
     var scriptTag = document.createElement("script"); 
     scriptTag.type="text/javascript"; 
     scriptTag.src= 'scriptURL'; 
     headID.appendChild(scriptTag); 
     } 
} 

使用Firebug/Chrome检查,我可以看到,脚本标记添加到DOM,但不执行(至少不是我能决定)的脚本。这是第三方脚本,因此我无法直接控制它,因此也无法修改它。

+1

加载是否正确?看看网络面板。如果是这样,是否有任何语法或运行时错误抛入控制台? – Bergi 2012-08-01 23:46:34

+1

脚本是否包含应该立即执行某些操作的代码,或者是否定义了需要从您自己的代码中显式调用的函数?如果你用你自己的简单'test.js'替换第三方脚本,只包含'alert(“我已加载”);'会发生什么? – nnnnnn 2012-08-01 23:47:42

+0

如果无法确定是否已加载,则可能需要尝试创建一个具有控制台日志的新JavaScript文件,并将脚本URL更改为指向该文件。 – JCOC611 2012-08-01 23:48:00

在阅读下面的问题评论之后,似乎第三方脚本在window.onload事件上正在完成其工作。许多程序员使用这种风格。

window.onload = function() { 
    // Whatever task 
}; 

如果你的页面的onload事件添加脚本标记之前动态中,“无论任务”代码永远不会执行已经被解雇了。

检查第三方脚本的来源。如果它使用window.onload,你可以尝试调用window.onload();在动态添加脚本标记之后。