2011-02-27 109 views
8

是否有可能跟蹤訪問者遇到的JS錯誤?很明顯,我們做了我們自己的測試,但有時訪問者會運行某個瀏覽器版本,或者有一個特定的插件,它會導致JS錯誤。同樣有時候,JS中的錯誤會被忽視。跟蹤訪客JS錯誤?

如果我們能夠以某種方式捕獲這些事件,並在服務器上顯示一個腳本並提供錯誤的詳細信息,以便我們嘗試修復此問題,那將非常有用。

更新: 感謝您的反饋意見。發佈後通常我設法找到:
Logging Clientside JavaScript Errors on Server
這對window.onerror的東西,也對jQuery和火狐的onerror仍沒有得到修復多年的bug一些有趣的事情...

回答

4

是的,使用window.onerror。

對於AJAX日誌記錄部分,不要依賴發生錯誤後可能運行的任何代碼。您可能希望通過使用動態插入的腳本標記(其源設置爲您的服務器腳本並將數據作爲GET參數)使請求保持儘可能簡單。但是,請注意,使用GET會限制您在src路徑中的字符數(在IE中約爲2000)。

然而,你要做到這一點,保持它很簡單是很重要的,因爲你不希望你的錯誤日誌代碼在它最有可能運行的情況下(邊緣情況)容易出錯。

您需要在非生產環境中禁用此功能,否則可能會掩蓋問題。

2

您可以使用JS中的onerror事件來獲取錯誤的詳細信息。 Hoptoad例如做到這一點並記錄錯誤的控制檯,他們的代碼重新使用大量漂亮的JS腳本,包括功能的printStackTrace這是偉大的.....

你可以看到他們是如何做到這一點的位置:

http://hoptoadapp.com/javascripts/notifier.js