动态创建脚本标记及其src加载在ie10中不起作用

时间:2013-09-26 09:04:41

标签: javascript internet-explorer-10

我只是尝试加载静态js文件,如下所示

function getKey(){ 
var headID = document.getElementsByTagName("head")[0]; 
var scriptEmt =document.createElement('script'); 
scriptEmt.type='text/javascript'; 
scriptEmt.src="https://preview16.abc.com/Svc/js/test.js";
headID.appendChild(scriptEmt);  
calltest();
}       

这里当我检查网络捕获时 - test.js已成功加载。我可以在URL https://preview16.abc.com/Svc/js/test.js的Response主体中看到js文件及其内容。我的test.js文件内容如下所示:

function calltest(){
alert("I am in test");
}

但是当我在headID.appendChild(scriptEmt)之后调用getKey()中的calltest()时;声明它说ERROR - SCRIPT5009:'calltest'未定义

这仅在IE10中发生。在IE 9中,calltest()函数被成功调用,其中的警报就会出现。

1 个答案:

答案 0 :(得分:0)

尝试

var fileTag = "<script src='https://preview16.arcot.com/Svc/js/test.js' type='text/javascript' ><\/script>";
document.write(fileTag);

也可以尝试

var script = document.createElement('script');        
script.onreadystatechange = function() {
  if (script.readyState == 'loaded') {
       document.body.appendChild(script);
       calltest();
  }
};
script.src = 'yourscript.js';