2012-08-07 39 views
1
运行

我用一个脚本来从库中加载脚本(大文件),它的工作原理是这样的:插入的JavaScript在IE8

  1. 负载通过XMLHttpRequest
  2. 脚本创建一个新的脚本里面的脚本(新文本节点的innerText或 的innerHTML)
  3. 元素追加的头部

没有什么很复杂的新元素。但IE8只是没有完成这项工作!它不允许通过任何方法将脚本插入脚本元素标记中!所以我尝试另一种方法:

<script type="text/javascript" language="javascript"> 
function teste(){ 
    var elemScript = document.createElement('script'); 
    elemScript.type = 'text/javascript'; 
    elemScript.language = 'javascript'; 
    elemScript.src = 'http://somewhere/somecode.js'; 
    var headTag = document.getElementsByTagName('head')[0]; 
    headTag.appendChild(elemScript); 
} 
window.onload = teste; 
</script> 

IE8只是不说什么。我不知道它是否正在加载,但我确定不会执行代码(测试警报)。 我知道,jQuery和其他库这样做,并可以使其在所有浏览器中工作(IE8 +将罚款给我)。他们如何做到这一点?有没有简单的方法来解决这个纯粹的JavaScript?

回答

-1

阿贾克斯不会触发onload事件:

window.onload = teste; 

所以,只要改变它调用的方法:

teste(); 
+0

据射击,里面有睾丸中确认()是我没有包括简化代码。 – Gustavo 2012-08-07 18:11:33

+0

我不知道它是如何激发ajax更新的onload,因为页面已经被加载。但是你有没有试过调用'teste();'? – falsarella 2012-08-07 18:15:05

+0

这个脚本在头部,它在页面底部加载。如果有一些尚未加载的DOM引用,它将无法工作,所以我总是这样写 - 这是一个很好的编程习惯。 – Gustavo 2012-08-07 19:21:00