6

ブラウザのエラーハンドラに行きたくないエラーがあると判断しました。しかし、私はまだそれらについて知りたいです。私の実際のコードには、エラーを非表示の要素に格納し、ajaxがそれらをデータベースに送信する関数があります。以下は私のtryブロックの簡略版です:

try
{
  newValueEvaled = eval(newValue);
}catch(err)
{
  alert("Error caught: Line " + err.lineNumber + ((err.columnNumber != undefined)?', Column:' + err.columnNumber:"") + '\n' + err.message);
}

columnNumberも欲しいです。現在、そこにあることはありませんが、どういうわけかブラウザエラーコンソールがそれにアクセスできます。誰かが私もそれにアクセスする方法を教えてもらえますか?

4

2 に答える 2

3

ページで実行されている JavaScript からエラー列番号を取得することはほぼ不可能です。Firebug/WebKit コンソール/IE コンソールは、ページ内で実行されているコードよりも多くのコール スタックに関する情報を提供する内部ブラウ​​ザ オブジェクトにアクセスできます。

于 2011-05-05T18:42:47.763 に答える
3

カスタムエラーハンドラー関数を使用して、エラー行と場合によっては列にアクセスできます。

function dumpErrors(error, file, line, column)
{
    alert('Error: ' + error + ', occurred in file: ' + file + ', on line: ' + line + ', at column: ' + (column || 'unknown'));
}
onerror = dumpErrors;

«line» はすべてのブラウザで利用できます。«column» については、最新の Chrome (リリース 30.0 以降) では利用できるようですが、Firefox (リリース 17、私の Linux で実行) では利用できないようです。

于 2013-11-29T06:33:54.723 に答える