他の要素がマウスオーバー/入力されたときにのみ表示される要素を検査します


119

別の要素がマウスオーバー/入力されたときにのみ表示される要素(ツールチップなど)を検査したいことがよくあります。表示される要素は、jQueryのmouseenterイベントを介して表示されます。

マウスが含まれている要素から離れるとツールチップが消えるため、ツールチップを検査できません。

JSイベントを一時停止して要素にカーソルを合わせ、ブラウザのJSを一時停止して正常に検査する方法はありますか?

例として、Twitterブートストラップのツールチップhttp://getbootstrap.com/javascript/#tooltipsを調べてみてください


9
ちなみに、要素がJSではなくCSSのために表示される場合は:hover、Devツールの要素(DOM)ビューで要素を右クリックし、[要素の状態を強制]を選択して[:hover]を選択すると、要素を強制できます。
MMM 2014

回答:


226

Chrome 38.0.2094.0では、これはかなり簡単です。

これは次のようになります。

ステップバイステップ:

  1. [ソース]パネルでDevToolsを開きます
  2. ボタンにカーソルを合わせるとツールチップが表示されます
  3. F8キーを押してページをフリーズします
  4. 要素パネルに切り替え、左上にある虫眼鏡アイコンを使用してツールチップを選択します

CSSが原因でツールチップが表示された場合、その場合にできることは次のとおりです。

ステップバイステップ:

  1. DevToolsを開く
  2. 開発ツールでトリガー要素を選択します(リンク)
  3. 右クリックして「要素の状態を強制」を選択し、「:hover」を選択
  4. CSSツールチップを調べる

1
@YuriyGalanter左上のスパイグラスのアイコンから利用できます。アイコンだけをクリックして、ツールチップをクリックしてください:)
サイムVIDAS

3
ええ、私はGIFを追加して、自分がやっていることを簡単に確認できるようにしました。
一部のガイ14

2
@DonnyP使用しましたbyzanz-record。それはあなたが得ることができるパッケージですsudo apt-get install byzanz
一部のガイ14

5
LICEcapもあり、画面の一部を超最適化されたGIFに直接記録します。Windows、OS X、Linux。
フレガント2014

2
@ bfred.it LICEcapはLinuxでは使用できません。このトピックについては、Githubの問題ご覧くださいWINEで実行しているようです。
アイザックグレッグソン2014

15

SafariのとChromeのWebインスペクタの両方を使用すると、切り替えることができ、チェックボックス提供しています:active:focus:hoverおよび:visited要素の状態を。それらの使用はさらに簡単かもしれません。

サファリ:

Safariのチェックボックス

クロム:

Chromeのチェックボックス


5
ツールチップは:hoverスタイルによってトリガーされません。
サイムVIDAS

2
FirefoxのFirebugも同じです(マイナス:visited、スヌーピングを防ぐために制限されています)-[HTML]タブでは、右側の[スタイル]ドロップダウンにあります
Izkata

1
@Izkata Firefoxのネイティブ開発者ツールの場合、ブレッドクラムの要素、またはHTML / DOMツリーを右クリックして:hover:activeまたはから選択し:focusます。
キラン価格

4

それを行う別のトリッキーな方法もあります:

  1. ツールチップを表示する要素に移動します。
  2. 右クリックしてコンテキストメニューを開きます。
  3. マウスを開発ツールウィンドウに移動し、開発ツールパネルの任意の場所で左クリックします。

ツールチップは表示されたままで、[要素]タブで調べることができます。

Chromeでテスト済み。Firefoxでは動作しないようです。


1
これは私が過去に行った方法ですが、@ SomeGuyの答えが最善かつ最も簡単な方法です。
ジョンワシャム14

@JohnDubyaいいえ、本当にそうではありません。それは公式の方法かもしれませんが、それは確かに簡単ではありません。必要な手順が多すぎます。
MiniRagnarok 2014

これは私が通常行うことですが、常に機能するとは限りません。
Synetech

3

一方で@ SomeGuyの答えは、あなたが常にプログラムでそれを行うことができ、代替として、(T-アップアニメーションGIFをのために)優れています。コンソールを開いて、イベント名を入力するだけです

document.getElementById('id').dispatchEvent(new Event('event-type'));

(純粋なJavaScript固有の構文では、ブラウザによって異なる場合があります)

jQueryでさらに簡単:

$('#id').trigger('event-type');

あなたの例(http://getbootstrap.com/javascript/#tooltips)で、コンソールを開いて次のように入力します。

$("button:contains('Tooltip on right')").mouseenter();

また、ツールチップはDOMに表示され、手動で検査/変更できます。

<div style="top: 14406.9px; left: 1048.25px; display: block;"
id="tooltip952596" class="tooltip fade right in" role="tooltip">
<div style="" class="tooltip-arrow"></div>
<div class="tooltip-inner">Tooltip on right</div></div>

コメントのように、マウスポインタをページフレーム上に移動すると、などの他のイベントをトリガーできますmouseout。これを防ぐには、押してF8(acc。answerにあるように)またはタイプしますdebugger;(これはスクリプトと同等です)。


1
要素を検査している間も、他のイベント(などmouseout)をトリガーできるため、そもそも問題は解決しません。それを選択するときは、十分に注意する必要があります。しかし、それは別のアプローチです。
MMM 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.