1

グローバルな例外をキャッチするために window.onerror で js スクリプトを保護している可能性があります。実際には、本番環境のファイルは圧縮されており、行番号は常に 1 になるため、どこでエラーが発生したのか本当にわかりませんか? この場合、私にできることはありますか?

window.onerror = function (errorMsg, fileName, lineNumber) { logger.sendError(errorMsg + " file name " + fileName, "window.onerror") };
4

2 に答える 2

0

Ianzz が彼のコメントで述べているように、一般に、ブラウザが縮小されたコードの意味のある行番号を判断することは不可能です。結局のところ、すべてのコードが 1 行にある場合、正しい (しかしまったく役に立たない) 行番号は常に1です。

ただし、ソース マップの使用を許可する動きがあります。ソース マップは、(縮小された) JavaScript がより意味のある入力にどのようにマップされるかを正確に指定する別のファイルです。

http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

仕様は比較的新しく、まだあまり普及していません。ただし、縮小フレームワークによっては、ソース マップを生成するためのツールが既に利用できる場合があります。

于 2012-11-18T17:29:39.623 に答える