グローバル イベント メカニズムを使用した効果的な 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
- Opera 11.60
- Safari 5.1
追加リソース
- Mozilla Developer Network: [window.onerror](https:/ /developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror)
- MSDN: [Web ページ エラーの処理と回避パート 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/)
- [Window onError イベント](https://www.html5rocks.com/en/tutorials/developertools/onerror/)
- [ JavaScript エラーを抑制する onerror イベント](https://stackoverflow.com/a/11712511)
- [SO: window.onerror が Firefox で起動しない](https://stackoverflow.com/q/5472601/ 123152)
以上が`window.onerror` イベントを使用して JavaScript エラーをグローバルに効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。