4

現在、いくつかのオートコンプリート フォーム フィールドをいじっていますが、生成されたドロップダウン アイテムを検査するのが非常に難しいと感じています。「要素の検査」ボタンをクリックするか、ドロップダウンを右クリックしようとすると、元のオートコンプリート入力が onclick イベント (またはフォーカスの変更をトリガーするもの) を実行し、要素を非表示、削除、または変更します。検査しようとしています。

デバッグしようとしているスクリプトによって、デバッガに与えたマウスクリックやその他のコマンドが傍受されないように、デバッガを操作する方法はありますか?

私は現在、Firebug と Chrome のインスペクタの両方でこの種の問題を抱えています。現在考えられる唯一の解決策は、適切なイベント ハンドラー内にいくつかのスマート ブレークポイントを設定することですが、どのイベント ハンドラーを探すべきか、元のコードのどこに隠されているかがわからない場合、それを行うのは困難です...

4

8 に答える 8

5

ブレークポイントを設定して、それがトリガーされた後に調べることができますが、DOM がフリーズすることに気付きました。

于 2012-11-08T20:17:38.827 に答える
2

ブレークポイントを使用する必要があります。どこで何が起こっているかを追跡する限り、Chromeの「コールスタック」ウィンドウは非常に役立ちます。

乾杯

于 2012-11-08T20:16:48.667 に答える
2

Firebugでは、パネルにBreak on nextアイテムがあります。ScriptFirebug 1.10以降、これにはキーボードショートカットがあります。++ CtrlWindowsでは(Firebugではなくページにフォーカスがある場合でも機能します)。AltB

これはパネルごとに異なるScript共有ショートカットであるため、Firebugに焦点を合わせたパネルが必要になる可能性があります。Break on...

100%信頼できるわけではありませんが、通常はDOMをフリーズします。

また、JavaScriptの実行で停止するため理想的ではなく、バックグラウンドでの積極的なポーリングやキーボードイベントのグローバルキャプチャがある場合は役に立ちません。とにかく、それはまだ何もないよりはましです。

于 2012-11-15T21:08:35.377 に答える
0

要素の選択に問題がある場合は、 Mac でcmd+ shift+cを試して、要素を右クリックせずに選択することができます。

DOM 操作に問題がある場合は、[要素] パネルで要素を右クリックし、強制状態をフォーカスに設定して、入力要素の状態を強制しようとすることがあります。

于 2012-11-09T06:42:52.047 に答える
0
  1. 最初にドッキングされた DevTools を開きます (OS の制限により、ドッキングされていないアプローチは機能しません)。
  2. オートコンプリート ボックスが表示されたら、それを右クリックし、コンテキスト メニューで [要素の検査] を選択します。フォーカスは DevTools に移動しますが、オートコンプリート ボックスは引き続き表示されます (これは、Linux、ツリーの先端の Chromium、M25 で機能しました。マイレージは異なる場合があります。)
于 2012-11-16T09:37:49.920 に答える
0
/**
 * Utility to freeze actual DOM state, for example dropdown menu
 */
function easyBreak() {
    function doBreak() {
        // put breakpoint here to freeze actual dom and write to console easyBreak()
        // you have 3 seconds to get to desired state
        var a = 0;
    }

    window.setTimeout(doBreak, 3000);
}
于 2016-11-08T09:11:51.873 に答える