2012-02-29 90 views
3

這是我團隊中一段時間​​內常見的問題。由於沒有理由,IE8有時只加載腳本。我正在使用asp.net mvc3,並且一些腳本通過_layout.cshtml加載(這就像所有其他頁面繼承的母版頁)。另一堆腳本只在需要時加載。我必須提到,我開始使用Head.js來加載我的腳本。我實際上希望能解決IE8腳本加載問題。IE 8 - 腳本並不總是加載

這些問題不會發生在Firefox或Chrome上(這是另一個動機,我確定它只發生在IE)。看起來,如果一個腳本在IE8上中斷,這個中斷會通過其他腳本傳播。

我知道這可能是一個太寬泛的問題,只能解決前面提到的情況。所以我想知道的是你有這樣的問題嗎?如果是的話,你做了什麼來解決它?我非常欣賞一些方向,因爲我必須使用IE。

這裏是正在上_layout.cshtml加載的腳本,在裝載的順序:

  • Head.js;
  • jquery-1.5.1.min.js;
  • modernizr-1.7.min.js;
  • jquery-ui-1.8.11.min.js;
  • jquery.ui.datepicker-pt-BR.js;
  • jquery.validate.min.js;
  • jquery.validate.unobtrusive.min.js;

的這些都是一些我在一些網頁上使用(這不是在它們的順序)其它腳本:

  • jQuery的blockUI.js;
  • jquery.jqGrid-4.1.2.min.js;
  • jquery.orbit-1.2.3.min.js;
  • jquery.jqplot.min.js(以及它的一些渲染器);
  • jquery.form.wizard-min.js;
  • ZeroClipboard.js;

編輯

由於T.J.要求提供一些代碼,因爲只用腳本的名稱很難確定問題,在這裏就是這樣。

腳本裝上_layout.cshtml

<head> 
<script src="@Url.Content("~/Scripts/head.min.js")" language="javascript" type="text/javascript"></script> 

//Lots of css files loaded mostly through document.write 

<script type="text/javascript" language="javascript"> 
     //  if (head.browser.mozilla || head.browser.webkit || head.browser.opera || 
     //  (head.browser.ie && (head.browser.version == '9.0'))) { 
     head.js('@Url.Content("~/Scripts/jquery-1.5.1.min.js")') 
       .js('@Url.Content("~/Scripts/modernizr-1.7.min.js")') 
       .js('@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")') 
       .js('@Url.Content("~/Scripts/jquery.ui.datepicker-pt-BR.js")') 
       .js('@Url.Content("~/Scripts/jquery.validate.min.js")') 
       .js('@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")'); 
     if (screen.width == 1024) { 
      head.js('@Url.Content("~/Scripts/resolucao1024.js")'); 
     } else { 
      head.js('@Url.Content("~/Scripts/resolucaoMaior1024.js")'); 
     } 
</script> 
@RenderSection("Header", false) 
</head> 
加載的圖表和圖形頁面

@section Header{ 
<script type="text/javascript" language="javascript"> 
     head 
     .js('@Url.Content("~/Scripts/jquery-blockUI.js")') 
     .js('@Url.Content("~/Scripts/jqGridMVC/grid.locale-pt-br.js")') 
     .js('@Url.Content("~/Scripts/jqGridMVC/jquery.jqGrid-4.1.2.min.js")') 
     .js('@Url.Content("~/Scripts/jquery-ConfigAjax.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jquery.jqplot.min.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jqplot.highlighter.min.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jqplot.dateAxisRenderer.min.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jqplot.pieRenderer.min.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jqplot.donutRenderer.min.js")') 
     .js('@Url.Content("~/Scripts/jqPlot/jqplot.cursor.min.js")'); 
    </script> 
} 

EDIT 2

哦對

腳本!我忘了提及,每次我打電話給一些javascript功能時,我使用head(function() {})而不是$(function(){})(它在head.js網站上推薦)。

編輯3

澤塔問,我提供了從IE控制檯打印(這是從我的圖表和圖形頁面)。

enter image description here

因爲我是巴西人,這是葡萄牙語。儘管很容易理解:這意味着'jqplot'爲空或不是一個對象。像jqplot從未加載或加載過程中有一些問題。

+0

請** **引用的代碼和標記加載腳本。只要告訴我們他們可能不足以繼續下去。 – 2012-02-29 13:44:26

+0

這是發生在生產中還是在使用Visual Studio Development Server時? – Niklas 2012-02-29 13:46:49

+0

我以前經常遇到這個問題。但它只發生在本地主機上。一切正常,真正的服務器。 – 2012-02-29 13:46:59

回答

1

廣泛的問題,所以我不能承諾這會解決它。

但我想大約一年前,我有一個問題,IE8和腳本標籤聽起來就像你的。

我注意到,如果腳本標籤沒有添加的所有演員:

類型=「文/ JavaScript的」 語言=「JavaScript的」

和服務器沒有 HTTP報頭 - >內容類型:文字/ javascript

它沒有工作。

給它一張支票,但多數民衆贊成我的一切

+0

如果是這樣,那將是IE8中一個巨大的**新bug。我認爲這是非常不可能的。 (並且請注意'語言'屬性已被棄用至少十年,沒有任何理由包含它。) – 2012-02-29 14:06:19

+0

不,我已經在我的所有腳本調用中添加了類型和語言。無論如何,謝謝你的答案。 – AdrianoRR 2012-02-29 14:17:32

+0

我知道貶值的東西。但那就是發生了什麼事。我並不是說語言是造成或破壞了語言。我列出了三項改變,將IE8從不下載/解析到下載/解析。 – 2012-02-29 14:21:38

2

我決定這樣做:

head.js("js/jquery-1.7.1.min.js", 
function() { 
    head.js("js/script.js"); 
    head.js("js/script1.js"); 
    head.js("js/script2.js"); 
    head.js("js/script3.js"); 
}); 

希望它可以幫助

+0

我會檢查出來。謝謝你的提示。 – AdrianoRR 2012-11-05 16:59:32