javascript window.onerror事件は新しい収穫を学びます。
2063 ワード
jsエラーをキャプチャする時、私たちは通常try{}catch(e){}の方式を使って、e.error Messageなどでエラー情報を取得して、エラーを報告します。しかし、Oneerror事件についてはあまり質問しないかもしれません。エラーの所在をどう報告するかを考えたことがありますか?これを考えたら、この問題にも悩まされたことがありますか?jsでは間違った行番号は捕獲できないと思いますか?実は本人は上述のいくつかの問題に出会って、今日ある人の書いた1段のjsコードを読んで突然oneerror事件を発見して、oneerrorこの時間もn久前に知っていたと言えば、しかしその持っている3つのパラメーターとその特殊な性質についてずっと理解していませんでした。自分の研究テストを経て、Oneerror事件に対していくつかの新しい認識と理解ができました。ページに誤りがない時、window.onerror事件は存在しないので、nullです。間違いないです。もしonerrorが現れたら正常ですか?)私たちは一般的に関数名を通して伝達されます。(引用の方式)Windows.onerror=reportErrなどの実行されるオペレーティング関数をオンロイベントに伝達します。window.onerror=function(){alert('error')}しかし、イベントのトリガには三つのデフォルトのパラメータがあるかもしれません。彼らはそれぞれエラー情報、エラーページのurlとエラー行番号です。これはイベントです。Oclickやonmouseoverなどのイベントと同じですが、パラメータがあります。私たちはこのようにテストできます。 パラメータ"+(i+1)+":"+argments[i];alert(errorMsg);window.onerror=null;return true;Function test(){error}test() [Ctrl+A全選注:]まずtestErr方法をオンerrorイベントに結びつけて、testメソッドでエラーをトリガして、IEで実行する時、以下のようなヒントを発見しました。 --------------------------- Microsoft インターネット Explorer --------------------------- パラメータの個数:3つ パラメータ1:'error' 未定義 パラメータ2:file://E:\yanwei\test\testError. パラメータ3:14 --------------------------- を選択します --------------------------- エラー時に関数testErrerが3つのパラメータに捕獲されることが分かった。関数をオンロイベントに結びつけることで、ページエラー時に上記の3つのパラメータを取り込むことができます。 テスト中に以下の問題も発見されました。 1、関数の末尾にリセットを加えることで trueは、関数のエラー時にシステムのエラー情報(IE)をイジェクトしないことができます。 2、ページに複数のエラーが発生した場合、最初のエラーのみをキャプチャして処理を行い、その後のプログラムの実行を終了します。 3、オンerrorイベントはすべてのエラーをキャプチャすることができません。関数外または関数内のエラーしかキャプチャできません。これはどういう意味ですか? adasdf; 機能 test(){ aaaa; } adasdf未定義のエラーをキャプチャすることができます。 機能 test(){ aaaa; } aaaa未定義のエラーを捕獲できます。 test(){}またはfunction test()dd{} のエラーがキャプチャできず、システムエラー情報を直接ポップアップします。 4、OneerrorはIEやFFなどのブラウザで実行する方式は同じで、しかもこれらの三つのパラメータが含まれています。