使用全域事件機制進行有效的JavaScript 錯誤處理
為了全域處理未定義的函數錯誤,利用JavaScript 的全域事件機制有效捕捉所有未捕獲的錯誤
window.onerror 事件處理
為window.onerror 事件實現一個事件處理程序,如下所示:
<code class="javascript">window.onerror = function(msg, url, line, col, error) {
// Message, URL, line and column details
// Note that col & error are new to HTML 5 and may vary across browsers.
// Customize the error display or perform error reporting using AJAX, for instance:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/ajax/log_javascript_error');
xhr.send(JSON.stringify({ msg, url, line, col, error }));
};</code>
登入後複製
< ;h2>window.onerror什麼時候觸發?
此事件觸發時:
-
未捕獲的例外:拋出訊息、呼叫未定義的函數,或跨越原始iframe 內容視窗/文檔錯誤。
-
編譯錯誤:語法錯誤,例如不匹配的括號、缺少分號或嘗試編譯非腳本參數。
瀏覽器支援
- Chrome 13
- Firefox 6.0
- Internet Explorer 5.5
- Internet Explorer 5.5 Opera 11.60
- Safari 5.1
其他資源
- Mozilla 開發者網路:[window. (https:/ /developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror)
- MSDN:[處理與避免網頁錯誤第2 部分:執行階段錯誤](https: //docs .microsoft.com/en-us/previous-versions/ms536764(v=vs.85))
- [回歸基礎– JavaScript onerror 事件](https://www.webdesignerdepot.com/ 2014/ 10/back-to-basics-javascript-onerror-event/)
- [DEV.OPERA:使用window.onerror 更好地處理錯誤](https://dev.opera.com/articles /better-error -handling-with-window-onerror/)
- [視窗onError 事件](https://www.html5rocks.com/en/tutorials/developertools/onerror/)
- [使用onerror 事件來抑制JavaScript 錯誤](https://stackoverflow.com/a/11712511)
- [SO: window.onerror 不會在Firefox 中觸發](https://stackoverflow.com /q/5472601/ 123152)
以上是如何使用「window.onerror」事件有效地全域處理 JavaScript 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!