Tôi mới đến Visual Studio Express 2012 cho Windows 8.0x800a139e - JavaScript lỗi runtime: Lỗi Cú pháp
tôi đã có thể để có được một ứng dụng đơn giản chỉ làm việc tốt, nhưng nó sẽ ném "ngoại lệ" cùng .
Vì vậy, để kiểm tra, tôi chỉ mới bắt đầu một thương hiệu mới dự án JavaScript trống, và chỉ cần liên kết mã jQuery trong default.html, và chạy trình gỡ lỗi, và các ngoại lệ sau vẫn được ném:
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
Làm thế nào tôi có thể chỉnh sửa mã jQuery hoặc những gì tôi cần phải làm để loại bỏ ngoại lệ này đang được ném?
Các phần của mã jQuery nơi ngoại lệ đầu tiên được ném:
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(",.*:");
});
Các phần của mã jQuery nơi ngoại lệ thứ hai đang được ném:
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 - Những điều tôi đã thử:
Từ những gì tôi hiểu, đó là giả sử để ném ngoại lệ, tuy nhiên microsoft sẽ không phê duyệt một ứng dụng đang ném bất kỳ er rors/exceptions ... Tôi khá bối rối rằng không có một câu trả lời rõ ràng cho việc này (có thể dễ dàng tìm thấy), vì nó có thể là một vấn đề mà mọi người đều sử dụng jquery với visual studio. Tôi thậm chí đã thử sử dụng jquery2.02 mà mọi người nói đã không ném những ngoại lệ này, nhưng nó vẫn làm cho tôi. Tôi đã thử chỉnh sửa mã jquery bản thân mình, nhưng điều đó gây ra rất nhiều lỗi khác.
Tôi cũng đã thử jquery cho windows 8 trong nuget (chưa được cập nhật trong 2 năm) ... mà tôi đoán là giả sử để giải quyết công cụ này, nhưng nó thực sự đã cho tôi nhiều lỗi thời gian chạy hơn.
Kể từ khi đi theo các ý kiến những ngoại lệ này được mong đợi, tôi cho rằng chúng sẽ bị jQuery đánh cắp nội bộ. Nếu những ngoại lệ đó không bao giờ đạt đến mức cao nhất, bạn có chắc đây là vấn đề đối với Microsoft không? Ứng dụng sử dụng các ngoại lệ bên trong để truyền bá lỗi, nhưng điều đó không phải là bất thường và không có nghĩa là ứng dụng gặp sự cố. Sẽ rất lạ nếu Microsoft không cho phép điều này. – sth
@sth - Tôi nghĩ bạn đúng. Vấn đề này có thể xảy ra khi Visual Studio được cấu hình để phá vỡ tất cả các lỗi JavaScript. Lỗi này được mong đợi và được xử lý bởi jQuery, nhưng Visual Studio không biết điều đó. Dường như nếu tôi bỏ qua lỗi và tiếp tục, tất cả đều tốt ... – barrypicker