今のところ、ASP.net Webページ(実際にはSite.Masterファイル)にjQuery(1.9.1ですが、古い1.8.3は同じように動作します)を含めています。IE9 / Win7-64での実行はすべて正常に機能しましたが、IE10(引き続きWin7-64)にアップグレードしてから、Webページをローカルで実行し、Internet Explorerを選択して、Visual Studio内から実行すると、例外が発生しました。
例外は、jquery-1.9.1.jsファイルの4224行目にあります。
// Opera 10-12/IE8 - ^= $= *= and empty values
// Should not select anything
div.innerHTML = "<input type='hidden' i=''/>";
if ( div.querySelectorAll("[i^='']").length ) {
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
}
// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
// IE8 throws error here and will not see later tests
if ( !div.querySelectorAll(":enabled").length ) {
rbuggyQSA.push( ":enabled", ":disabled" );
}
// Opera 10-11 does not throw on post-comma invalid pseudos
div.querySelectorAll("*,:x");
rbuggyQSA.push(",.*:");
古いものと新しいものの両方のjQueryは、Windows7上のIE10を適切に処理していないようです。Opera10-11でクラッシュしました。これは興味深いことです。
また、4242でクラッシュが発生します
if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector ||
docElem.mozMatchesSelector ||
docElem.webkitMatchesSelector ||
docElem.oMatchesSelector ||
docElem.msMatchesSelector) )) ) {
assert(function( div ) {
// Check to see if it's possible to do matchesSelector
// on a disconnected node (IE 9)
support.disconnectedMatch = matches.call( div, "div" );
// This should fail with an exception
// Gecko does not error, returns false instead
matches.call( div, "[s!='']:x" );
rbuggyMatches.push( "!=", pseudos );
});
エラーの1つは次のとおりです。
Exception was thrown at line 4224, column 4 in http://localhost:49928/jquery/jquery-1.9.1.js
0x800a139e - JavaScript runtime error: SyntaxError
Source line: div.querySelectorAll("*,:x");
誰か考えがありますか?