問題: jQuery コントロールのバグ
$.ajax を使用するとエラーが発生します。IE6 と IE8 では正常です。エラーメッセージは次のとおりです:
公式フォーラムの手順:
http://forum.jquery.com/topic/object-doesn-t-support-this-property-or-method-from-jquery-1-4-1-in-ie7-only
http://dev.jquery.com/ticket/6498
http://dev.jquery.com/ticket/6314
解決策:
jquery-1.4.2.js を変更します。
フォーラムで誰かが提案した修正方法をテストしましたが、うまくいきました。
こんにちは、これは次のことに関連しているようです。 jQuery バグ 6314 (http://dev.jquery.com/ticket/6314)。IE7 で [ネイティブ XMLHTTP サポートを有効にする] がオンになっている場合 ([ツール] > [インターネット オプション] > [詳細] タブ > [セキュリティ] セクション内)。このエラーが表示されます。オプションのチェックを外して無効にするとエラーが解決するようです。
ただし、すべての Web サイト閲覧者にそのオプションのチェックを外すように指示することはできないため、次のコードでも問題は解決するようです。縮小されていない jQuery で、次の行を見つけます。
try {
var oldAbort = xhr.abort;
xhr.abort = function() {
if ( xhr) {
oldAbort.call ( xhr ) ;
}
onreadystatechange( "abort" );
} catch(e) { }
次のコードに置き換えます。 🎜>try {
var oldAbort = xhr.abort;
xhr.abort = function() {
if ( xhr) {
if (oldAbort.call === 未定義) {
oldAbort() ;
} else {
oldAbort.call( xhr );
}
onreadystatechange( "abort" ); catch(e ) { }
この問題は、このフォーラムの他のユーザーが述べているように、xhr (XMLHTTP) オブジェクトがネイティブ IE オブジェクトであるため、xhr.abort 関数の中止関数が通話はサポートしていません。