web-dev-qa-db-ja.com

IE10およびjQuery:SCRIPT5009:「$」は未定義です

私はこの本当に厄介な問題に直面しています、それはIE9のようにIE10に現れます。このHTMLを考えます:

<head>
    <title>Any Consult</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <!--[if lte IE 9]>
        <script src="scripts/IE9.js"></script>
    <![endif]-->
    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/scripts.js"></script>
</head>

これ(scripts.js)はFFおよびChromeで正常に動作しますが、IE10はSCRIPT5009エラーをスローします。

scripts.jsは次のようなものです(単純ですが、テストされた例):

$(document).ready(function() {
   alert('Hello');
});

IE10はjQuery-Fileをロードせず、ほとんどすべてを試しました。ファイル名を変更して縮小しましたが、

<!--[if lte IE 9]>...

一部、私が試した

src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js"

しかし、何も起こりませんでした。これは この質問 の新しいバージョンであるため、指定したいと思います。

  1. iE(10)のjQueryファイルにどのように名前を付ける必要がありますか?
  2. スクリプトヘッダーをHTMLヘッダーのどこに配置すればよいですか?

どうもありがとう!

編集:ここでは、動作しない推奨のHTMLバージョンも示します。

<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/scripts.js"></script>
<script type="text/javascript" src="scripts/clocks.js"></script>
<!--[if lte IE 9]>
    <script src="scripts/IE9.js"></script>
<![endif]-->
<!--[if IE]><script type="text/javascript" src="scripts/excanvas.js"></script><![endif]-->

IE9.jsは、ブラウザーのポリフィルファイルです。

そして、ここに私のスクリーンショットがあります(「ist undefiniert」は「未定義」、「Die Webseite reagiert nicht」は「ページがダウンした」、「Debugger beenden」は「デバッグを停止」、$( '。aLang')はクラスです私のHTMLで。

Screenshot IE10 Bug Report

19
BairDev

IEでこの問題が発生し、jQuery javascriptファイルがIE開発者ツールで破損していることがわかりました。これは、HTTP GZIP圧縮によりサーバーによって行われますが、IEはファイルを解凍していません。静的HTTP圧縮をオフにするか、圧縮を行っているものからapplication/x-javascriptを除外するとFluorineFXによって10Kbを超えるすべてのファイルに対して)圧縮されたjavascriptファイルを削除するためにブラウザーのキャッシュをクリアすると問題なく動作するはずです。

9
Mike Kokitch

条件付きスクリプトを配置しますafter jQueryライブラリ:

<script type="text/javascript" src="scripts/jquery.js"></script>
<!--[if lte IE 9]>
<script src="scripts/IE9.js"></script>
<![endif]-->
3
BenM