Tôi quan tâm đến việc giám sát lỗi javascript và ghi lại lỗi bằng callstack.theo dõi lỗi js
Tôi không quan tâm đến việc bao trùm mọi thứ trong các khối try-catch.
Theo bài báo này http://blog.errorception.com/2011/12/call-stacks-in-ie.html nó có thể bên trong window.onerror "đệ quy gọi .caller cho mỗi chức năng trong ngăn xếp để biết các chức năng trước đó trong ngăn xếp"
tôi đã cố gắng để có được những callstack:
window.onerror = function(errorMsg, url, lineNumber)
{
var stk = [], clr = arguments.callee.caller;
while(clr)
{
stk.push("" + clr);
clr = clr.caller;
}
// Logging stk
send_callstack_to_log(stk);
}
nhưng chỉ một bước là có thể ngay cả khi callstack là dài hơn nhiều:
(function()
{
function inside() {it.will.be.exception;};
function middle() {inside()};
function outside() {middle()}
outside();
})();
Một bước không thú vị bởi vì các đối số onerror cung cấp cho tôi nhiều thông tin hơn về nó.
Có, tôi đã thử với IE theo bài viết tôi đã đề cập ở trên.
Lưu ý: Tôi cũng đã cố mở một tài khoản trên "ERRORCAEPTION" để thu thập nhật ký lỗi. Tôi đã thử nghiệm nó với IE và "ERRORCAEPTION" nhận ra rằng các lỗi đến từ IE, nhưng tôi không thể tìm thấy bất kỳ thông tin callstack nào trong nhật ký tôi đã có.
Bạn có thể có một cái nhìn tại [stacktrace.js] (https://github.com/eriwen/javascript-stacktrace). Nó là một giải pháp đa trình duyệt. – zeroflagL