Tôi có một chút JavaScript (Jquery Tools' Overlay) có thể ném một ngoại lệ khi bị xóa trên trang sử dụng không chính xác và tôi đang cố gắng xử lý nó một cách duyên dáng.Bắt lỗi javascript trong tệp tập lệnh bên ngoài
Tôi có trình xử lý chung window.onerror để giải cứu các lỗi này và báo cáo lại cho máy chủ, tuy nhiên, điều đó không được kích hoạt.
Tôi cũng không thể quấn thử/nắm bắt xung quanh mã này vì mã được bao gồm dưới dạng tập lệnh từ xa trong HTML.
Bất kỳ ý tưởng nào về cách bạn có thể cứu các lỗi mà tập lệnh bên ngoài sẽ ném ra?
CẬP NHẬT: Đây là ví dụ. Tôi nên sửa bản thân mình, window.onerror không được kích hoạt, tuy nhiên tập lệnh không tiếp tục chạy (trong ví dụ, cảnh báo không bao giờ cảnh báo).
<html>
<script type="text/javascript">
window.onerror = function(e){ console.log("caught error: "+e); return true;}
</script>
<body>
<!-- this is the line in the dom that causes the script to throw -->
<a rel="nofollow"></a>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.4.1");</script>
<script src="http://cdn.jquerytools.org/1.2.5/tiny/jquery.tools.min.js"></script>
<script type="text/javascript">
//this code will throw an error in jquery tools
$("a[rel]").overlay();
alert("it's ok, I still ran.");
</script>
</body>
</html>
là 'window.onerror' của bạn được xác định trước khi lỗi được ném? Nếu không, nó sẽ không hoạt động. –