2012-02-29 11 views
3

しばらく私のチームに共通の問題でした。何の理由もありませんが、IE8はスクリプトを読み込むことがあります。私はasp.net mvc3を使用していて、いくつかのスクリプトは_layout.cshtml(これは、他のすべてのページが継承するマスターページのようなものです)を通して読み込まれます。他のスクリプトは、必要なときにのみ読み込まれます。私は私のスクリプトを読み込むためにHead.jsを使い始めたことに言及しなければならない。私は実際にIE8スクリプトの問題を修正することを望んでいました。IE 8 - スクリプトが常に読み込まれるとは限りません

これらの問題はfirefoxやchromeでは発生しません(これは私がIE上でのみ起こる別の動機です)。 IE8で1つのスクリプトが壊れた場合、このブレークは他のスクリプトを介して伝播します。

私はこれが前述の状況だけで解決するには広すぎる問題かもしれないことを理解します。ですから、私が知りたいのはです。このような問題がありましたか?はいの場合、あなたはそれを解決するために何をしましたか?私は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;

EDIT 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() {})を使用することを忘れていました(head.jsサイトでのお勧めです)。

ゼータが尋ねたように、私はIEコンソールから印刷を提供しています3

EDITは(それは私のチャートやグラフィックのページからです)。

enter image description here

私はブラジル人だので、それはポルトガル語です。ただし、わかりやすい:'jqplot'がヌルであるか、オブジェクトではありません。 jqplotがロードされたことがないか、ロード中に問題が発生しました。

+0

してください**引用**コードとマークアップに役立ちます希望を。彼らが何をしているかを伝えるだけでは十分ではありません。 –

+0

これは本番環境やVisual Studio Development Serverを使用しているときに発生しますか? – Niklas

+0

私は頻繁にこの問題に直面しました。しかし、それはローカルホストだけに起こった。実際のサーバーですべてが問題なく動作します。 –

答えて

1

広い質問があるので、これを修正すると約束できません。

しかし、私は約1年前にあなたのように聞こえるIE8とスクリプトタグに問題があったと思います。

私は、スクリプトタグが追加されたすべてのエクストラを持っていなかった場合に気づい:

タイプ=「テキスト/ javascriptの」 言語=「javascriptの」

を、サーバが のhttp header-を送信しませんでした。 >コンテンツタイプ:テキスト/ javascript

これはうまくいかなかった。

私はこれをやって解決し、私は

+0

もしそうなら、それはIE8の**大きな**新しいバグでしょう。私はそれが非常に起こりそうにないと思う。 (そして、 'language'属性は少なくとも10年は非難されているので注意してください。) –

+0

いいえ、すべてのスクリプト呼び出しで型と言語の両方を追加しました。とにかく、答えをありがとう。 – AdrianoRR

+0

私は減価償却されたことを認識しています。しかし、それは何が起こった。私は言語がそれを作ったり壊したものだと言っているわけではありません。私はIE8をダウンロード/解析からダウンロード/解析に変えるために変更した3つの事柄を挙げました。 –

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