Internet Explorer 7/8エラーオブジェクトから行番号を取得する方法はありますか?
.message、.description、および.numberプロパティのみを認識しています。
少し検索して、.stack(http://msdn.microsoft.com/en-us/library/hh699850 (v=vs.94).aspx )でMSDNの記事を見つけましたが、独自の例を使用しています。コードは行番号を返しません:
Internet Explorer 7/8エラーオブジェクトから行番号を取得する方法はありますか?
.message、.description、および.numberプロパティのみを認識しています。
少し検索して、.stack(http://msdn.microsoft.com/en-us/library/hh699850 (v=vs.94).aspx )でMSDNの記事を見つけましたが、独自の例を使用しています。コードは行番号を返しません:
さらに調べてみたところ、window.onerror を使用して IE の行番号を取得できることがわかりました。これは Error オブジェクト自体によるものではありませんが、適切な回避策です:
function BadFunction(){
This.badcode.willnot.work = 1000
}
function ForceError(msg, url, lno) {
alert("Error Occurred! Handled by Generic Error Handler" + "\n" +
"Error: " + msg + "\n" + "URL: " + url + "\n" +
"Line Number: " + lno);
return true;
}
window.onerror = ForceError;
この方法では、エラーがウィンドウまで泡立つ必要があります。コードに try/catch がある場合は、エラーが発生する可能性があるため、エラーを再スローする必要があります。
この問題の解決策を調べているときに、GitHub で StackTraceJS にも出会いました。彼らのスタック トレース スクリプトは、Internet Explorer を除くすべてのブラウザーでうまく機能します。クライアント ブラウザーで生成されたエラーをログに記録する場合に最適なランタイム デバッガー。