7

私は jquery 2.0 を使用していますが、jQuery 移行プラグインも使用して、私の Web サイトが古いブラウザーで動作するようにしたいと考えています。しかし、私はそれを機能させることに失敗しました。HTMLのヘッダーセクションに次のものがあります。

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <script src="/Scripts/jquery-2.0.3.js"></script>
    <script src="/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="/Scripts/jquery.validate.min.js"></script>
    <script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>

互換性メタ タグは、これを自分のコンピューター (IE 11 を搭載) でテストできるようにするためのものです。古い IE を搭載したコンピュータを持っていません。とにかく、これは私に次のようなJavaScriptエラーを与えています:

0x800a01b6 - JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'addEventListener' をサポートしていません

jQuery移行ガイド(https://github.com/jquery/jquery-migrate/)は、jQueryを含めた後に移行プラグインを含めるように言っているようです。私は何を間違っていますか?

編集

ローカルの jquery.js ファイルが壊れているか、取得した nuget パッケージのバージョンが悪いことがわかりました。code.jquery.com から直接 jquery をインクルードすると、そのエラーは解消されます。

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <script src="http://code.jquery.com/jquery-2.1.0.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>

ただし、スクリプトでエラーが発生します。これがスクリプトの例です

function HighlightSelectedRow(tr) {
    $("#TableSummary tr").removeClass("HighlightedRow");
    tr.className += " HighlightedRow";
}

次のエラーが発生します

0x800a138f - JavaScript runtime error: The value of the property '$' is null or undefined, not a Function object

ありがとう

4

4 に答える 4

6

js スタックの順序を変更する必要があるかもしれません。

<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<script src="/Scripts/jquery-2.0.3.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>
</head>
于 2014-02-19T14:05:24.910 に答える
3

include jquery migrate スクリプトの順序を変更する

于 2014-04-25T08:02:33.863 に答える
2

おそらくファイルの破損ではなく、jQuery 2.x と IE 8 との互換性がないだけです。IE 8 との 互換性が必要な場合は、1.x シリーズを使用してください。

これは、IE 10 を実行している場合でも当てはまります (私はより新しいと思います)。私の場合、ツール/互換表示設定/イントラネット サイトを互換表示で表示するにチェックを入れた PC が数台ありました。そのため、ローカル PC の Visual Studio では問題なく動作しましたが、次のテスト レイヤーである SPLAT のために社内サーバーに「発行」したとき. 一部の PC はクラッシュして燃えましたが、他の PC は正常でした。

jQuery ダウンロード サイトでこの警告が表示されます。

jQuery 2.x は jQuery 1.x と同じ API を備えていますが、Internet Explorer 6、7、または 8 をサポートしていません。... IE 6/7/8 はまだ比較的一般的であるため、1.x バージョンの使用をお勧めします。 IE 6/7/8 ユーザーがサイトにアクセスしていないことが確実でない限り。

IE の互換モードを強制的に解除したい場合は、

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

マスター ページの一番上に追加できます。


編集

このコードは、古い IE の正しいバージョンの jQuery を呼び出します。互換モードでは、IE 8 および 10 用に 1.x をロードします。これは、上記の Meta 値と組み合わせて、またはその代わりとして追加できます。

<!--[if lt IE 9]>
    <script src="http://code.jquery.com/jquery-1.11.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<!--<![endif]-->
于 2014-04-22T21:58:48.357 に答える