首頁  >  文章  >  web前端  >  如何使用「window.onerror」機制全域擷取所有 JavaScript 錯誤,包括 Flash 觸發的未定義函數呼叫?

如何使用「window.onerror」機制全域擷取所有 JavaScript 錯誤,包括 Flash 觸發的未定義函數呼叫?

Susan Sarandon
Susan Sarandon原創
2024-10-27 06:30:291028瀏覽

How can I globally catch all JavaScript errors, including undefined function calls triggered by Flash, using the `window.onerror` mechanism?

JavaScript 的全域錯誤機制

問題:是否有一種全域方法來捕捉每個JavaScript 錯誤,包括Flash 觸發的未定義函數調用?

使用window.onerror 的解決方案

JavaScript 提供了一個全域事件處理程序window.onerror,它可以捕獲在運行時(未捕獲的異常)或編譯(編譯時錯誤)期間拋出的錯誤。

<code class="javascript">window.onerror = function(msg, url, line, col, error) {
  // Process and display error information
}</code>

如上所示設定 window.onerror 事件處理程序將攔截並處理 JavaScript 程式碼中遇到的每個錯誤。

window.onerror 處理的錯誤類型

window.onerror。 onerror 處理未捕獲的異常和編譯時錯誤。未捕獲的異常包括以下錯誤:

  • 拋出「一些訊息」
  • 呼叫未定義的函數,例如call_something_undefined()

編譯時錯誤手,包括錯誤,例如:

  • 未終止的腳本標籤(<script>{</script>)
  • 語法錯誤(<script>for(;)< / script>)</script>

瀏覽器相容性

window.onerror 在現代瀏覽器中得到廣泛支持,包括:

  • Chrome 13
  • Firefox 6.0
  • Internet Explorer 5.5
  • Opera 11.60
  • Safari 5.1

優質瀏覽器的抑制錯誤警報:

從window.onerror 傳回true,您可以抑制通常針對JavaScript 錯誤出現的預設瀏覽器警報。

AJAX 錯誤報告:

使用 XMLHttpRequest,您可以透過 AJAX 將詳細的錯誤訊息傳送到伺服器端腳本以進行記錄或進一步處理。

參考文獻

Mozilla 開發者網路:window.onerror ([link](https:// developer.mozilla.org/en-US/docs/Web/API/ GlobalEventHandlers/onerror))

    MSDN:處理與避免網頁錯誤第2 部分:執行階段錯誤([link](https:// /docs.microsoft.com/en-us/previous-versions/aspnet /bb264952(v=vs.100)))
  • 回歸基礎– JavaScript onerror 事件([link](https://javascriptweblog .wordpress.com/2010/02/11/back-to-basics- javascript-onerror-event/))
  • DEV.OPERA:使用window.onerror 更好地處理錯誤([連結](https:// /dev.opera.com/articles/window-onerror/) )
  • Window onError 事件([link](https://www.byterocket.org/blog/window-onerror-event))
  • 使用onerror 事件抑制JavaScript 錯誤([link] (https://remysharp.com/2010/10/08/using-the-onerror-event-to-suppress-javascript-errors/))
  • Stack Overflow:window.onerror 在Firefox 中未觸發([連結](https://stackoverflow.com/questions/10714399/window-onerror-not-firing-in-firefox))

以上是如何使用「window.onerror」機制全域擷取所有 JavaScript 錯誤,包括 Flash 觸發的未定義函數呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn