我已經實現用window.onerror
,在那裏我檢索當前的錯誤和堆棧跟蹤,並將其發送給使用AJAX捕捉錯誤時JavaScript源地圖是否可用?
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
}
其中printStackTrace
是這個庫提供的功能的服務器客戶端的異常記錄:http://stacktracejs.com/
問題是,在生產過程中,所有的JavaScript文件都被縮小了,因此堆棧跟蹤和行號並不真正有用,因爲所有錯誤都在文件的第1行上報告,因爲縮小版本包含一行代碼。例如:
Message: Object doesn't support property or method 'indexOf'
URL: http://[server]/[site]/content/combined/combined.635EE367354E6DF721593CAC56FECF95.min.js
Line: 1
可以這樣使用源地圖可以改善或根本的工作,只有當開發者工具是活動的?
我想什麼是讓使用源地圖的完整的堆棧跟蹤(或至少是實線數)時誰沒有激活啓用/源地圖的開發工具,用戶出現錯誤。這可能嗎?
對於同樣的問題需要解決。你現在多久了? – IsmailS
@iSid尚未找到解決方案。似乎它是不可能的,直到瀏覽器實現它。不知道更多的信息比寫在答案中。對不起 – SzilardD
@iSid這個問題似乎有更多的解決方案:http://stackoverflow.com/questions/19420604/angularjs-stack-trace-ignoring-source-map – xmojmr