Tôi hiện đang làm việc trên một ứng dụng web, tôi có một cơ chế ghi nhật ký JS xử lý lỗi Javascript mà không bị bắt gặp bởi mã js bên trong trang. Tôi đang sử dụng window.onerror để nắm bắt tất cả các lỗi như vậy và đăng nhập chúng ở nơi khác.Cửa sổ bắt chước. onerror trong Opera bằng cách sử dụng javascript
Tuy nhiên, sự cố xảy ra với Opera không có sự kiện window.onerror. một cách tiếp cận tôi có thể nghĩ đến là, để xử lý chuỗi tất cả các mã hàm js và chèn hãy thử chặn các khối bên trong các hàm đó sau khi tải nội dung. Nó không hoạt động trong nhiều trường hợp, tuy nhiên, nó ít nhất là hoạt động ở một mức độ nào đó.
Tôi chắc chắn cách tiếp cận này hút, Nhưng, tôi không thể nghĩ ra bất cứ điều gì tốt hơn. Vui lòng thông báo.
Cập nhật: Hiện tại, tôi đang gọi mã bên dưới để Bắt được nhiều lỗi nhất có thể.
function OnBodyLoad()
{
var allElements = document.getElementsByTagName("*");
for(var cnt = 0;cnt < allElements.length;cnt++)
{
RegisterAllEvents(allElements[cnt]);
}
}
function RegisterAllEvents(objToProcess){
for(var cnt = 0;cnt < objToProcess.attributes.length;cnt++){
if(IsAttributeAnEvent(objToProcess.attributes[cnt].name))
{
objToProcess.attributes[cnt].value = 'try{'+objToProcess.attributes[cnt].value+'}catch(err){LogError("'+ objToProcess.id+'"'+ ',err);}';
}
}
}
Cảm ơn bạn đã nhập mã! Chúng tôi có thể kết thúc bằng cách sử dụng trong chế độ phát triển tại công ty chúng tôi (nếu nó không phải là quá chậm). –