Attualmente sto lavorando su un'applicazione web, ho un meccanismo di registrazione JS che gestisce l'errore Javascript che non viene catturato dal codice js all'interno della pagina. Sto usando window.onerror per catturare tutti questi errori e registrarli altrove.Finestra mimica. onerror in Opera usando javascript
Tuttavia, il problema è con Opera che non ha evento window.onerror. un approccio che potrei pensare è quello di stringere il codice di tutte le funzioni js e inserire i blocchi di cattura all'interno di quelle funzioni dopo il carico del corpo. Tuttavia, non funziona in molti casi, ma almeno funziona in una certa misura.
Sono sicuro che questo approccio fa schifo, ma non riuscivo a pensare a niente di meglio. Si prega di avvisare.
Aggiornamento: per ora, sto chiamando il codice qui sotto per catturare quanti più errori possibile.
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);}';
}
}
}
Grazie per il codice! Potremmo finire per usarlo in modalità di sviluppo presso la nostra azienda (se non è troppo lento). –