私はJavaScriptの12K行をデバッグしています。もちろん、それはオフショアチームによって書かれています。ここで、UIを操作するときに呼び出されるjs関数を確認する必要があります。とにかく、実行中の関数に自動的にジャンプすることはできますか?
どこにブレークポイントを置くかわからないので、本当にブレークポイントを置くことができませんか?
アプリはIE7でのみ実行されます!
私はJavaScriptの12K行をデバッグしています。もちろん、それはオフショアチームによって書かれています。ここで、UIを操作するときに呼び出されるjs関数を確認する必要があります。とにかく、実行中の関数に自動的にジャンプすることはできますか?
どこにブレークポイントを置くかわからないので、本当にブレークポイントを置くことができませんか?
アプリはIE7でのみ実行されます!
VS 2008は、InternetExplorerなどのスクリプトホストプロセスに接続できます。「スクリプトホスト」は、他のブラウザでは使用されないWindowsスクリプトプラットフォームに固有であることに注意してください。
Internet Explorerは、VSがiexplorer.exeに接続し、そこで実行されているスクリプトをデバッグできるように、「スクリプトのデバッグを許可する」ように構成する必要があります。
これは非常に苛立たしいデバッグ体験であることに注意してください。最新のブラウザ(まともな開発者ツールを備えたIE9を含む)でデバッグできる場合は、そうしてください!
Visual Studio を IE7 にアタッチしたら、Break Allオプションを使用して実行中のスクリプトを終了できます。onmouseover
スクリプトが実行されていない場合は、スクリプトが実行された瞬間に壊れます。たとえば、リスナーを持つ要素にマウスを置いた場合などです。
特定のコードを探している場合、これはやや面倒かもしれません。関連する部分が見つかるまでコードをトレースする以外に、これを回避する方法はないと思います。
たとえば、これがボタンをクリックしたときに発生するバグである場合は、ボタンの HTML コードを確認してください。ハンドラーがある場合は、その関数を検索してそこにブレークポイントを設定するか、関数の先頭にonclick
単語を追加します。debugger;
ハンドラーがない場合は、Javascript コードでボタンの をonclick
検索し、リスナーがその DOM 要素にバインドされているかどうかを確認します。ID
12,000 行の Javascript コードが、何が起こっているのかを確認する努力を妨げる理由はまったくありません。問題の再現を見つけ、[検索] を使用して Javascript ファイル内の関連するコードを見つけます。また、あなたのサイトは Firefox や Chrome では動作しないかもしれませんが、かなり後方互換性があるので IE8 では動作するかもしれません。IE8 にはより優れたデバッガーがあり、どのコードがどこで実行されているかを追跡するために使用できるさまざまな DOM 要素を探索する機能もあります。
お役に立てれば!