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
ありがとう
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>
Includejquery移行スクリプトの順序を変更します
ファイルの破損ではない可能性があります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]-->
互換モードをオンにオフにするIEは私のために働いた。