Visual Studio Express 2012 for Windows 8を初めて使用します。
シンプルなアプリを問題なく動作させることができましたが、同じ「例外」が発生します。
テストのために、まったく新しい空のJavaScriptプロジェクトを開始し、jQueryコードをdefault.htmlにリンクしてデバッガを実行したところ、次の例外がスローされます。
Exception was thrown at line 1217, column 4 in ms-appx://xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/Scripts/jquery-2.1.1.js
0x800a139e - JavaScript runtime error: SyntaxError
Exception was thrown at line 1235, column 4 in ms-appx://xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/Scripts/jquery-2.1.1.js
0x800a139e - JavaScript runtime error: SyntaxError
jQueryコードを編集するにはどうすればよいですか、この例外がスローされないようにするために何をする必要がありますか?
最初の例外がスローされているjQueryコードの部分:
assert(function (div) {
// Support: Windows 8 Native Apps
// The type and name attributes are restricted during .innerHTML assignment
var input = doc.createElement("input");
input.setAttribute("type", "hidden");
div.appendChild(input).setAttribute("name", "D");
// Support: IE8
// Enforce case-sensitivity of name attribute
if (div.querySelectorAll("[name=d]").length) {
rbuggyQSA.Push("name" + 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"); // *********** THIS IS LINE 1217 ***********
rbuggyQSA.Push(",.*:");
});
2番目の例外がスローされているjQueryコードの部分:
if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
docElem.webkitMatchesSelector ||
docElem.mozMatchesSelector ||
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" ); // ***** THIS IS LINE 1235 *****
rbuggyMatches.Push( "!=", pseudos );
});
}
TooLongDon'tRead-私が試したこと:
私が理解していることから、例外をスローすることが想定されていますが、Microsoftはエラー/例外をスローしているアプリを承認しません...これに対する明確な答えがないことはかなり混乱しています(簡単に見つかった)、それはおそらくVisual Studioでjqueryを使用する誰もが持っている問題であるためです。私は人々がこれらの例外をスローしないと言ったjquery2.02を使ってみましたが、それでも私にはそれができました。私はjqueryコードを自分で編集しようとしましたが、それによって他の多くのエラーが発生しました。
私はまた、nugetでWindows 8のjquery(2年ほど更新されていない)を試しました...この問題を解決するためだと思いましたが、実際にはさらに多くのランタイムエラーが発生しました。
IE11を使用しているときに、jQueryで同様の問題が発生しました。 JQuery 2.1.1はIE11と互換性があると主張していますが、状況によってはそうではなく、エラーを返すことがわかりました。最新のJQuery 1.Xビルドを使用してみてください。 2.1.1とまったく同じ機能を備えていますが、2.1.1で削除されたIE 7、8、9の互換性チェックがまだあります。
window
オブジェクトが利用可能な場合は、window.onerror
キャッチされなかったすべての例外をキャッチする関数:
window.onerror = function (message, url, lineNo)
{
console.log('Error: ' + message + '\n' + 'Line Number: ' + lineNo);
return true;
}
console.log(window);
console.log(1=2);
参照
WebページをVS10からVS12に移動したときにも同じエラーが発生しました。問題はどういうわけか転送に関係していると思いました。上記の質問と回答を読み、エラーがWindows 8.1およびIE 11.を使用してテストしていると結論付けました。FireFoxブラウザーを使用してVS12バージョンのソフトウェアをテストしましたが、エラーは発生していません。 IE 11でjQueryを変更して1.xをビルドする方法を知っています。そうした場合、ソフトウェアを最も人気のあるブラウザを使用して動作させたいためです。
ご協力ありがとうございます。