這是我團隊中一段時間內常見的問題。由於沒有理由,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控制檯打印(這是從我的圖表和圖形頁面)。
因爲我是巴西人,這是葡萄牙語。儘管很容易理解:這意味着'jqplot'爲空或不是一個對象。像jqplot從未加載或加載過程中有一些問題。
請** **引用的代碼和標記加載腳本。只要告訴我們他們可能不足以繼續下去。 – 2012-02-29 13:44:26
這是發生在生產中還是在使用Visual Studio Development Server時? – Niklas 2012-02-29 13:46:49
我以前經常遇到這個問題。但它只發生在本地主機上。一切正常,真正的服務器。 – 2012-02-29 13:46:59