0

関数fooが定義されていない以下のようなインラインスクリプトがある場合、次のようなことができるようにしたいと思います。

<script fileName='foo.js'>
  foo();
</script>

エラーコンソールに表示されるファイル名を制御したり、エラーを処理するときにwindow.onerrorに渡されるファイル名を制御したりします。たとえば、送信先のURLパラメータを制御したい

window.onerror = function (errMsg, url, line) {
    console.log(url); //would like this to output 'foo.js'
    console.log(event.filename);  //would like this to also output 'foo.js'
}

デフォルトでは、スクリプトが外部ファイルにリンクしていない限り、親htmlファイルのみがリストされますが、エラーの発生元のスクリプトタグを異なるスクリプトタグのインラインコードで指定できると非常に便利です。

これを行う方法はありますか?

4

1 に答える 1

1

私が知る限り、javascript は内部で実行される HTML タグを認識していません。このようなものはあなたのために働くでしょうか?

<script>
  try {
    foo();
    // the rest of the code...
  } catch (err) {
    console.log('Caught error in foo.js');
    console.error(err);
  }
</script>

これらのスクリプトをページに動的に追加している場合は、この try/catch コードでそれらをラップして、目的の効果を得ることができるはずです。

于 2012-09-14T15:40:51.763 に答える