Tôi đang cố gắng hiểu tại sao Firefox (tôi đang sử dụng 15 nhưng nó giống nhau trong hàng đêm) không hoạt động như WebKit khi cố gắng truy cập thông tin sự kiện lỗi.Làm thế nào để có được chi tiết sự kiện lỗi trong Firefox bằng cách sử dụng addEventListener?
một này hoạt động ở khắp mọi nơi:
window.onerror = function(message, lineno, filename) { }
Nhưng tất nhiên tôi không muốn sử dụng này.
Các điều đúng đắn cần làm là:
window.addEventListener('error', function(e) {
console.log(e.message);
}, false);
Thật không may này chỉ hoạt động trong WebKit. Trong Firefox, trình xử lý được gọi, nhưng sự kiện e
gần như trống: không có thông báo, không có số dòng, không có thuộc tính tên tệp.
Các thử nghiệm rất tối thiểu là ở đây: http://jsbin.com/efexiw/1/edit
Tôi không nghĩ rằng đây là một lỗi, mặc dù ... do đó, câu hỏi là: làm thế nào để tôi có được chi tiết lỗi trong Firefox gần đây?
Tôi chấp nhận câu trả lời vì ít nhất tôi biết làm thế nào để xử lý tình hình. Quá tệ Tôi không hiểu tại sao Firefox _seems_ lại xóa "tính năng" này (đối với những gì tôi đã đọc trong các tìm kiếm của mình là các ví dụ cũ mà có nghĩa vụ phải làm việc trong FF và các trình duyệt khác). – Claudio
Trong FF 38, ít nhất, có lẽ sớm hơn nhiều, sự kiện lỗi được cung cấp cho addEventListener có ít nhất là thông điệp, tên tệp và thuộc tính lineno ... có thể nhiều hơn. Tôi hiện đang tìm kiếm thêm, và cho bất kỳ tiêu chuẩn nào xác định cụ thể. – Victoria
Chi tiết về sự kiện lỗi còn thiếu, nhưng [MDN] (https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent) hiển thị .colno có sẵn và thử nghiệm cho biết .error.stack có sẵn trong FF38. – Victoria