web-dev-qa-db-ja.com

jQueryMigrateプラグインの使用方法

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を搭載したコンピューターはありません。なので:

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

ありがとう

5
Skye MacMaster

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>
6
Jai

Includejquery移行スクリプトの順序を変更します

3
Nikhil

ファイルの破損ではない可能性がありますjQuery2.xおよびIE 8。必要な場合IE 8互換性、1.xシリーズを使用してください。

これは、IE 10(そして私は新しいと思います)を実行している場合でも当てはまります。私の場合、ツール/互換表示設定/イントラネットサイトの表示を備えたPCがいくつかありました互換表示チェック済み。したがって、ローカルPCのVisual Studioでは正常に機能しましたが、次のテストレイヤーであるSPLATのために社内サーバーに「公開」すると、一部のPCがクラッシュして焼け、他のPCは正常でした。 。

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

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

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

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

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


編集

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

<!--[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]-->
1
Greg Little

互換モードをオンにオフにするIEは私のために働いた。

0