2011-11-10 30 views
21

Tôi muốn đăng nhập lỗi JavaScript vì vậy tôi trọng window.onerror như thế này:Nếu tôi ghi đè lên window.onerror trong javascript, tôi có nên trả về true hoặc false không?

window.onerror = function(message, file, lineNumber) { 
    var browser_ = encodeURI(navigator.appVersion); 
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber); 
    var user_ = encodeURI(""); 

    ... 

    return false; 
} 

Tôi đã nhìn thấy một số người trở true và một số trở false. Điều gì là đúng và tại sao? Một bài viết đã đề cập đến một điều gì đó về việc bạn phải trả lại true hay Firefox sẽ xử lý lỗi đó theo cách riêng của nó. Gì??

Trả lời

25

Từ MDN trên window.onerror:

Khi hàm trả về true, điều này ngăn cản việc sa thải xử lý sự kiện mặc định.

Xem thêm crom Issue 92062:

Trong Chrome, trở true từ window.onerror cho phép sai số để tuyên truyền, và trở về false ngăn chặn nó.

Đây là nghịch đảo của hành vi trong Firefox và IE, trong đó trả về 'true' ngăn chặn lỗi, nhưng trả về false sẽ truyền bá nó.

Lưu ý: vấn đề nêu trên đã được cố định, hành vi tại là như đã nói ở trên MDN cho tất cả các trình duyệt.

+0

Hành vi của Chrome trên khuôn mặt của nó dường như là cách tôi mong đợi nó hoạt động ... "lỗi? Sai!" –

+2

@Tomasz Bạn không trả lời tôi nên làm gì! Ngoài ra, ví dụ về nơi bạn muốn truyền bá lỗi là gì? Tôi đoán đó là một câu hỏi mới! – tooshel

+0

Opera 11.60 hoạt động giống như Chrome. – c69

Các vấn đề liên quan