Ho implementato client registrazione eccezione lato usando window.onerror
, dove posso recuperare l'errore e stack corrente traccia e inviarlo al server utilizzando AJAXLe mappe di sorgenti JavaScript funzionano quando si verificano errori?
window.onerror = function(message, url, line) {
var stackTrace = printStackTrace(); //get stack trace
//send message, url, line and stackTrace to the server using an ajax call
}
dove printStackTrace
è una funzione fornita da questa libreria: http://stacktracejs.com/
Il problema è che in produzione tutti i file JavaScript vengono minimizzati, quindi la traccia dello stack e il numero di riga non sono molto utili poiché tutti gli errori sono riportati sulla riga 1 nel file che è normale in quanto la versione minificata contiene una singola riga di codice. Ad esempio:
Message: Object doesn't support property or method 'indexOf'
URL: http://[server]/[site]/content/combined/combined.635EE367354E6DF721593CAC56FECF95.min.js
Line: 1
Questo può essere migliorato utilizzando le mappe di origine o funziona solo quando Strumenti di sviluppo è attivo?
Quello che vorrei è ottenere l'intera traccia dello stack utilizzando le mappe di origine (o almeno il numero di linea reale) quando si verifica un errore per un utente che non ha abilitato gli strumenti di sviluppo/le mappe di origine. Ciò è effettivamente possibile ?
Soluzione necessaria per lo stesso problema. Quanto tempo ci stai ora? – IsmailS
@iSid non ha trovato una soluzione. sembra che non sia realmente possibile fino a quando il browser non lo implementa. non so più informazioni di ciò che è scritto nella risposta. spiacente – SzilardD
@iSid questa domanda sembra avere più soluzioni: http://stackoverflow.com/questions/19420604/angularjs-stack-trace-ignoring-source-map – xmojmr