2011-08-26 52 views
0

我有一個小問題。我想在腳本加載完成時收到通知。這裏是我的代碼:在IE中動態加載腳本時發出javascript通知

var headID = document.getElementsByTagName("head")[0];   
     var newScript = document.createElement('script'); 
     newScript.type = 'text/javascript'; 
     newScript.src = 'http://code.jquery.com/jquery-1.6.2.min.js'; 

     newScript.onreadystatechange= function() { 
      if (script.readyState == "loaded" || script.readyState == "complete"){ 
       script.onreadystatechange = null; 
       alert("Script is ready!"); 
      } 
     }; 
     newScript.onload= function(){ 
      alert("Script is ready 2!"); 

     }; 

一切工作正常在Firefox,鉻,歌劇,但不是在Internet Explorer(IE9)。 我在這個網站上發現script.onreadystatechange被IE使用,但它似乎不工作在IE9上(我沒有在舊版本上試過)。該腳本在IE中加載,但我沒有收到通知,這對我很重要。

謝謝。

PS:我知道在stackoverflow上有類似的問題,我閱讀它們,但沒有一個解決了我的問題,或以這種特殊方式處理它,這就是爲什麼我創建了這個問題。

+0

你累了jQuery?如果它工作,我想知道爲什麼它用來獲得就緒狀態? –

+0

您是否通過包含完全限定的DOCTYPE將HTML文檔設置爲標準模式?檢查呈現模式IE認爲您的頁面爲「默認」(可在開發人員工具中找到)。 – Tomalak

+0

你在哪裏得到/刪除變量腳本? – Baz1nga

回答

-1

這不是特別優雅的解決方案,但您可以執行無限循環並檢查加載腳本中是否設置了變量。如果它被設置,然後腳本加載類似的東西:

While(true){ 
     if(typeof foo != "unidentified"){alert('loaded'); break;} 
    } 
+0

使用While true可以使瀏覽器非常慢 –