2012-07-10 35 views
1

所以我有以下它在大多數瀏覽器中工作得很好,除了在IE8和更老的版本中,它只會在你第一次訪問頁面時或者當你按Ctrl + f5(清除緩存)並查看頁面。發生什麼事是這個影響的項目是在我的頁面的主佈局/模板中,所以當我遍歷該站點時,它不會加載。IE8第一次執行後沒有運行javascript

例如我在主頁上,我點擊進入個人欄目,期望該項目加載到下一頁,但它甚至沒有出現。

$(document).ready(function() { 

    if (window.document.domain == "developer10.machine") { 

     var oScript = document.createElement('script'); 
     oScript.type = 'text/javascript'; 
     oScript.src = '/js/uk_converter.js'; 

     // most browsers 
     oScript.onload = function() { 
      renderCurrencyConverter('GBP', 'EUR', 1.00); 
     } 

     // IE 
     oScript.onreadystatechange = function() { 
      if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10))) 
      { 
       renderCurrencyConverter('GBP', 'EUR', 1.00); 
      } 
     } 
     document.body.appendChild(oScript); 
    } 
}); 

回答

3

只要您已經在緩存中設置腳本的src,它就完成加載。由於您在設置src後添加onload處理程序,因此onload處理程序永遠不會被調用。嘗試在設置完處理程序後設置src。

$(document).ready(function() { 

    if (window.document.domain == "developer10.machine") { 

     var oScript = document.createElement('script'); 
     oScript.type = 'text/javascript'; 

     // most browsers 
     oScript.onload = function() { 
      renderCurrencyConverter('GBP', 'EUR', 1.00); 
     } 

     // IE 
     oScript.onreadystatechange = function() { 
      if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10))) 
      { 
       renderCurrencyConverter('GBP', 'EUR', 1.00); 
      } 
     } 

     oScript.src = '/js/uk_converter.js'; 
     document.body.appendChild(oScript); 
    } 
}); 

或者試試jQuery腳本裝載機:

$(document).ready(function() { 
    $.getScript("/js/uk_converter.js", function() { 
     renderCurrencyConverter('GBP', 'EUR', 1.00); 

    }); 
}); 
+0

你能不能提供一個例子嗎? – Anicho 2012-07-10 16:56:01

+0

好吧,是的,我只是想確保我在做你的想法。 – Anicho 2012-07-10 16:59:08

+0

是啊,試過了,沒有做伎倆對不起。 – Anicho 2012-07-10 16:59:52

相關問題