13

たくさんの JavaScript コードを含む jsp があります。ページに JavaScript エラーが表示されると、IE ブラウザのステータス バーに表示されます。エラーが含まれていると報告された行番号は、実際にエラーが含まれている行番号と一致しません。報告された行番号を見つけるために、右クリック>ソースの表示を行っています。しかし、その行にはエラーが含まれていません。エラーは、他の行にあると思います。誤った行番号が報告される理由は何ですか。

4

5 に答える 5

6

多くの試行錯誤の末、問題を発見しました。願わくば、これがこの苛立たしい問題に直面している一部の人に役立つことを願っています。

RightClick>View Source は、ページをレンダリングするためにブラウザーが認識するコードです。しかし、それだけではありません。このページには、css ファイルと js ファイルへの他の HTTP 要求も含まれている可能性があります。それが私の場合に起こっていたことでした。エラーは、インポートされた (含まれていません。含まれていた場合、エラーはコードに含まれていたはずです) js ファイルにありました。報告された行番号は、その js ファイルに関連しています。

ただし、振り返ってみると、インポートされたファイルは Web サーバーへの独立した HTTP 要求であるため、ブラウザーのキャッシュに個別に保存されるため、これは正しいことがわかりました。したがって、RightClick>View Source コードには表示されません。

潜在的な問題: ただし、私の場合、報告された個々の js ファイルの行番号は正しいことがわかりましたが、常に正しいとは限りません。ほとんどのエンタープライズ アプリケーションでは、バイト フットプリントを削減するために、js および css が縮小されることがよくあります。したがって、IDE で見ている js ファイルは、ブラウザで表示されるものと同じではありません。したがって、行番号は異なる場合があります。行番号は、ブラウザに表示される圧縮バージョンのファイルになります。

IE JAVASCRIPT DEBUGGING: このページを見つけました。これは、IE 環境で (高度ではありませんが) デバッガー環境を提供することを約束しています。

http://jonathanboutelle.com/2006/01/16/how-to-debug-javascript-in-internet-explorer/ 完全な Office パッケージがインストールされていないため、試しませんでした。

于 2010-01-06T10:42:48.160 に答える
3

Internet Explorer は Javascript の行番号を報告するのが苦手です。通常、報告される<script>行番号は、Javascript ファイル内の場所の行番号ではなく、HTML ファイル内で Javascript タグが開始された場所です。「エラー報告」のみに依存してください。行番号はIEでは何の価値もありません。

Firebug 拡張機能がインストールされた Firefox や、Web インスペクターが組み込まれている Google Chrome など、別のブラウザーを使用してください。

于 2010-01-06T09:09:53.640 に答える
1

ここに素敵な記事があります

JavaScript のデバッグ: JavaScript のエラー メッセージを理解する

特に、行番号は、予想よりもはるかに役に立ちません。ブラウザーは行番号の決定方法が異なるため、ソース コードに関連してエラーが発生した正しい行番号を確実に報告しません。たとえば、Internet Explorer は、ドキュメント ソースのブラウザ自体の内部レンダリングに関連する行番号を報告します。これは、ソース ファイルと一致する場合と一致しない場合があります。Firefox は、エラーの場所をより確実に報告し、該当する場合はエラーが発生したスクリプト ファイルを報告します。ただし、Firefox は、「呼び出し元」として知られる、エラーの原因となった要素に関する詳細を提供しません。この情報は、エラーの原因をすばやく追跡するのに役立ちます。

于 2010-01-06T09:10:19.817 に答える
-1

エラーの正確な理由と場所を取得したい場合、および大規模な JavaScript デバッグを実行したい場合は、FireBugを使用することをお勧めします。

于 2010-01-06T09:06:33.623 に答える