フォーカスが失われたときにDOMから消えるHTML要素を検査するにはどうすればよいですか?


137

入力からテーブルセルへのCSSプロパティを検査しようとしています。入力を調べようとすると、クリックするとフォーカスが失われ、フォーカスが失われると入力が消えます。別のウィンドウ(インスペクター)に移動しているときにフォーカスを失わないようにするにはどうすればよいですか?



3
そうではありません。この質問の解決策はここでは適切ではありません
RogelioTriviñoMar

1
ソリューションは非常に適しています
Jonathan

2
この回答で解決された他の質問があり、それが私の最初の試みでしたが、この状況では、ブラウザーからChromeデベロッパーツールウィンドウに変更すると:focus状態が失われ、確認する必要のある項目も消えます。クリックすると表示され、フォーカスを失うと消えるDOM要素について話している。
RogelioTriviño2015年

回答:


144

Chromeブラウザで、デベロッパーツールを開き、[ 要素]タブを選択してから、検査する要素の親ノードのコンテキストメニューを開き、コンテキストメニューで[ ブレークオン ] > [ サブツリーの変更 ]をクリックします。

その後、ページをクリックするだけで、フォーカスを失ったり、検査する要素を失うことなく、インスペクターにアクセスできます。

ここに画像の説明を入力してください


5
FFにも方法はありますか?
2018

2
おかげで、何時間もブロックされた後、私はこの解決策を得て、ここに質問と解決策を書くことにしました。時間が経つにつれ、ここで私の評判の主なソースになります。 Javaで?」
RogelioTriviño19年

検査する要素の親ノードをどのようにして見つけますか?インスペクタで要素を開くためにクリックするボタンがありますが、ポップアップはDOMでは明らかに無関係です。
Michael

はい、javascriptは本体または関連する上位のDOM要素のすぐ下に新しい要素を作成することがあります。コードに問題がない場合は、JavaScriptが作成している場所を知っている必要があります。作成していない場合は、BODYサブツリーの変更を中断して、新しいdom要素を直接作成している開発ツールを確認する必要があります(直接にする必要はありません)親)
RogelioTriviño

コンテキストメニューについて混乱している場合は、domノードの左端にある3つのドットのメニューです。
palerdot

92

マウスを動かさずにキーボードショートカットでJavaScriptの実行を一時停止すると、消える要素をキャプチャできます。Chromeでこれを行う方法は次のとおりです。

  1. 開発者ツールを開き、ソースに移動します。
  2. スクリプトの実行を一時停止するショートカットに注意してください— F8

    スクリプトの実行を一時停止

  3. UIを操作して、要素を表示します。

  4. ヒットF8
  5. マウスを動かしたり、DOMを調べたりする方法。要素はそのまま残ります。

このトリックは、Firefoxやその他の最新のブラウザでも機能します。


12
これは多くの場合に便利ですが、一部のスクリプトはデバッガーがロックされる前にトリガーされます。たとえば、私のオートコンプリート選択ボックスでは、スクリプトを一時停止する前にすべての選択肢が非表示になっているため、スタイルをインタラクティブに微調整するのが非常に困難です。
2016

残念ながらこれはクロムのみのヒントですが、自分で試した理由を解決しました。
webwake 2017年

1
@webwake、はい、この特定の例はChromeにありますが、最近のほとんどのブラウザでは、キーボードショートカットを使用してスクリプトの実行を一時停止できます。
mxxk

これは完璧に機能し、とても簡単でした!注:Chrome for Macでスクリプトの実行を一時停止するのは `⌘+`です。
ジョーダングレイ

1
@JordanGrayを聞いて良かった。もしかして-backslash?私にとっては、F8仕事と仕事の両方を語っています。
mxxk 2018

73

他のすべてが失敗した場合は、コンソールに次のように入力します。

setTimeout(() => { debugger; }, 5000)

次に、デバッグするものをすべて表示するために5秒(または値を他の値に変更)します。

他の回答のどれも私のために働いていない- DOMツリーが(私が消失気にすなわちものを)修正取得保管右のスクリプトが一時停止する前に。


7
このソリューションはかなりハッキーですが、実際に機能します!ありがとうございました!
Manjar 2018

1
それらすべての中で最も信頼できるシンプルなソリューション。
ジェームズ

13

これがあなたの状況でうまくいくかどうかはわかりませんが、Chromeデベロッパーツールでは通常(そして、この点についてはすべてのケースで言及する価値があります)、要素の状態をシミュレートできます:focus

これを行うにElementsは、開発者ツールのタブに移動Stylesし、右側のセクションにいることを確認します(これは、開発者ツールを起動したときのデフォルトの場所です)。右上のスタイルの下にアイコンがありますToggle Element State。あなたはそれをクリックすると、シミュレートすることができ:active:hover:focusおよび:visited要素のために、あなたのコードビューで、左側に選択しました。

ここに画像の説明を入力してください


3
この回答で解決された他の質問があり、それが私の最初の試みでしたが、この状況では、ブラウザーからChromeデベロッパーツールウィンドウに変更すると:focus状態が失われます
RogelioTriviñoMar

9

テスト中のページの開発者ツールページのChromeで...オプションメニューをクリックし、設定の設定を開きます... DevToolsで[フォーカスされたページのエミュレート]を有効にします

次に、テストページで要素を表示します。これは、ポップアップ検索結果を画面に表示するように焦点を合わせているため、うまく機能しました。


8

実際のソリューションではありませんが、通常は機能します(:

  1. 要素に焦点を合わせる
  2. 右クリックでコンテキストメニュー
  3. 下に移動して開発者ツール

フォーカス可能な入力の検査


1
2020年1月現在もChromeで動作します。ありがとうございます。良い回避策
マンロー

2

私は非常に困難な状況にあり、ここから回答が機能しませんでした(私にとっては本文であるコンテナー、または元のイベントを変更する回答を確認していなかったため、それを知りませんでした)。私はついにChrome Inspectorのコントロールイベントリスナーのブレークポイントを介してブレークすることで回避策を見つけました。多分それはまた、F8やマウスの右クリックでもポップアップを非表示にする複雑な状況を壊すクロスブラウザーの方法でもあります。

ここに画像の説明を入力してください


1

次のJavascriptをブラウザ開発者コンソールに貼り付けます。

// Delayed console log of parent element with disappearing child element(s)
// Once code is trigger, you have 3 seconds to trigger the hidden element before it snapshots.
// The hidden elements should appear in the console ready to inspect.

var timer = 3000; //time before snapshot
var parent_of_element_to_inspect = 'div.elementcontainer'; //container of element to snapshot
setTimeout(function(){
 console.log(document.querySelector(parent_of_element_to_inspect).cloneNode(true));
},timer);

0

ツールの使い方があまり得意ではないので、すぐに修正しました。

event.originalEvent.preventDefault();
event.originalEvent.stopImmediatePropagation();
event.originalEvent.stopPropagation();

-1

Chrome DevToolsを開いてから、キーボードショートカットを使用して要素インスペクターをトリガーすると、問題が解決するはずです。

Mac: Cmd+Opt+JそしてCmd+Opt+C

Windows: Ctrl+Shift+JそしてCtrl+Shift+C

[1]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.