2012-08-07 35 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