2011-11-10 7 views
21

私はこのようなwindow.onerrorをオーバーライドしていますので、JavaScriptのエラーを記録したい:javascriptのwindow.onerrorをオーバーライドすればtrueかfalseを返しますか?

window.onerror = function(message, file, lineNumber) { 
    var browser_ = encodeURI(navigator.appVersion); 
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber); 
    var user_ = encodeURI(""); 

    ... 

    return false; 
} 

私は何人かの人々がtrueを返し、いくつかのリターンfalse見てきました。どちらが正しいのですか? 1つの記事は、あなたが真実に戻らなければならないことについて何か言及しているか、またはFirefoxがそれ自身の方法でエラーを処理します。何?? window.onerrorMDNから

答えて

25

は:

機能がtrueを返し、これはデフォルトイベントハンドラの発火を防ぐことができます。

Issue 92062クロムも参照してください:Chromeの場合

、window.onerrorからtrueを返すと、エラーが伝播することを可能にし、falseを返すと、それを抑制することができます。

これはFirefoxとIEの動作の逆です。これは 'true'を返すとエラーを抑制しますが、falseを返すとそれを伝播します。

注:すべてのブラウザのためにMDNに述べたように、上記の問題が修正されました、行動が今あります。

+0

Chromeの動作は、私が動作すると期待していたようです...「エラー?偽」 –

+2

@トーマスあなたは私がするべき答えなかった!また、エラーを伝播したい場所の例は何ですか?私はそれが新しい質問だと思います! – tooshel

+0

Opera 11.60はChromeのように動作します。 – c69

関連する問題