0x800a139e - Ошибка выполнения JavaScript: SyntaxError
Я новичок в Visual Studio Express 2012 для 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(",.*:");
});
Часть кода 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 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 не одобрит приложение, которое бросает какие-либо ошибки/исключения... Я довольно смущен тем, что на этот вопрос нет четкого ответа ( это легко найти), так как это, вероятно, проблема, которую каждый имеет, который использует jquery с визуальной студией. Я даже попытался использовать jquery2.02, который, по словам людей, не выбрасывал эти исключения, но это все равно для меня. Я пробовал самостоятельно редактировать код jquery, но это вызвало массу других ошибок.
Я также попробовал jquery для windows 8 в nuget (который не обновлялся примерно через 2 года)... я предполагаю, что решил разрешить этот материал, но на самом деле он дал мне еще больше ошибок времени выполнения.
Ответы
Ответ 1
Я столкнулся с аналогичной проблемой с jQuery при использовании IE11. Оказывается, что хотя JQuery 2.1.1 утверждает, что совместим с IE11, я обнаружил, что в некоторых ситуациях он не возвращает и не возвращает ошибки. Попробуйте использовать самую последнюю сборку JQuery 1.X. он имеет ту же функциональность, что и 2.1.1, но все еще имеет проверки совместимости для IE 7, 8 и 9, которые были удалены в 2.1.1.
Ответ 2
Если доступен объект 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);
Ссылки
Ответ 3
У меня была такая же ошибка, когда я переместил мою веб-страницу с VS10 на VS12. Я думал, что проблема связана с передачей. Я прочитал вышеуказанные вопросы и ответы и пришел к выводу, что моя ошибка тестировалась с использованием Windows 8.1 и IE 11. Я протестировал свое программное обеспечение версии VS12 с помощью браузера FireFox, и ошибка исчезла. Я не знаю, как изменить jQuery в IE 11 для создания 1.x. Если бы я это сделал, потому что я хочу, чтобы мое программное обеспечение работало с использованием самых популярных браузеров.
Благодарим вас за вашу помощь.