17

動的にロードされたjQuerydocument.ready関数をデバッグする方法を探しています。

明らかに、関数がそこに存在しないため、スクリプトパネルを表示してマウスでブレークポイントを追加することはできません。

「デバッガ」も追加してみました。関数に(引用符なしで)、しかしそれは何もしませんでした。これを試している間、関数が実際に実行されることを確認しました。

ご協力いただきありがとうございます、

エイドリアン

編集: Firebugが実際にデバッグで壊れることに気づきました。ただし、動的にロードされたスクリプトでこれを行うと、通常どおりそのスクリプトのソースコードが表示されません。さらに、コールスタックは自分のコードのすぐ下で終了します。コールスタックを介してdocument.readyの実装を表示できますが、それは実際には役に立ちません。これはFirebugのバグですか、それとも何か見落としたことがありますか?

4

5 に答える 5

17

私はちょうどこの同様の質問に取り組みました。解決策には、ワードデバッガーを2回追加することが含まれます。1回は外部ファイルの先頭に、もう1回はデバッグが必要な関数の先頭にあります。

デバッガワードを1回だけ使用すると、機能しないことに気づきました。例:

//myExternal.js
debugger;
function myExternalFunction(){
 debugger;
 /* do something here */
}
于 2009-05-17T11:31:56.000 に答える
0

イベントが呼び出される場所にブレークポイントを配置してから、[再生]をクリックする代わりに、[ステップイン](F11)を選択してみてください。目の前にテストケースはありませんが、うまくいくと思います。

于 2009-05-13T16:24:45.263 に答える
0

あなたがこれを理解したかどうかはわかりませんが、誰かがそれを必要とする場合に備えて...

これを回避するには、デバッグしたいコードをメインページからリンクされた外部ファイルに移動しました。

私の場合、default.aspxがjQueryAJAXを使用してservices.aspxをコンテンツdivにロードしていました。次に、Services.aspxは、データを提供していたWebサービスからAJAXを使用してjQueryUIタブ要素をロードしていました。Webサービスコードは、default.aspxからリンクされたdata.jsというファイルにありました。services.aspxのヘッダーにあるコード(タブにデータをロードするコード)をデバッグする必要がありましたが、使用可能なインスペクターでコードを確認することはできませんでした。必要なコードをdata.jsの新しい関数に移動し、services.aspxのヘッダーから呼び出しました。

それが必要な人にとってそれが理にかなっていることを願っています!

于 2010-07-31T11:42:59.303 に答える
0

Firefox 5.0 / Firebug 1.7.3で同じ動作(debugger;動的にロードされたコードのステートメントを無視するFirebug)が発生しました。

Firebugウィンドウをデタッチすることで回避しました(「新しいウィンドウでFirebugを開く」)。

于 2011-07-15T21:40:34.737 に答える
-2

IEJScriptデバッガーでサポートされている「debugger」キーワードとSafariのWebInspectorもあるので、firebugでサポートされていないと驚かれることでしょう。

基本的に:

// mydynamicallyloadedfile.js
... // do stuff
debugger; // triggers debugger
... // more stuff

そして、私はfirebugがdebuggerキーワードで壊れるのを期待します

于 2009-05-13T21:06:47.770 に答える