Actualmente estoy trabajando en una aplicación web, tengo un mecanismo de registro JS que maneja el error Javascript que no son detectados por el código js dentro de la página. Estoy usando window.onerror para detectar todos esos errores y registrarlos en otro lugar.Ventana mímica. onerror en Opera usando javascript
Sin embargo, el problema es con Opera que no tiene el evento window.onerror. Un enfoque en el que podría pensar es, procesar en cadena todo el código de funciones js e insertar bloques de captura de prueba dentro de esas funciones después de la carga del cuerpo. Sin embargo, en muchos casos no funciona, pero al menos funciona en cierta medida.
Estoy seguro de que este enfoque apesta, pero no se me ocurre nada mejor. por favor asesorar.
Actualización: Por ahora, estoy llamando al código siguiente para capturar tantos errores como pueda.
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);}';
}
}
}
¡Gracias por el código! Podríamos terminar usando eso en modo de desarrollo en nuestra compañía (si no es demasiado lento). –