Untersuchen Sie Elemente, die nur angezeigt werden, wenn ein anderes Element mit der Maus überfahren/eingegeben wird
Lesezeit: 4 Minuten
Don P
Oft möchte ich ein Element (z. B. Tooltip) überprüfen, das nur angezeigt wird, wenn ein anderes Element mit der Maus überfahren/eingegeben wird. Das erscheinende Element wird über das mouseenter-Event von jQuery sichtbar gemacht.
Ich kann den Tooltip nicht überprüfen, da der Tooltip verschwindet, wenn meine Maus das enthaltende Element verlässt.
Gibt es eine Möglichkeit, JS-Ereignisse anzuhalten, damit ich den Mauszeiger auf das Element bewegen, dann das JS des Browsers anhalten und es erfolgreich überprüfen kann?
Nur zu Ihrer Information, wenn das Element wegen CSS statt JS erscheint, können Sie a erzwingen :hover Klicken Sie darauf mit der rechten Maustaste auf das Element in der Ansicht Elemente (DOM) in Dev Tools, wählen Sie „Force Element State“ und dann „:hover“.
– MMM
17. Juli 2014 um 8:56 Uhr
Irgendein Typ
In Chrome 38.0.2094.0 ist es ziemlich einfach.
So wird es aussehen:
Schritt für Schritt:
Öffnen Sie die DevTools im Bereich „Quellen“.
Lassen Sie den Tooltip erscheinen, indem Sie den Mauszeiger über die Schaltfläche bewegen
Drücken Sie F8, um die Seite einzufrieren
Wechseln Sie zum Bedienfeld „Elemente“ und verwenden Sie das Lupensymbol oben links, um den Tooltip auszuwählen
Wenn der Tooltip wegen CSS angezeigt wird, können Sie in diesem Fall Folgendes tun:
Schritt für Schritt:
Öffnen Sie die devtools
Wählen Sie das auslösende Element in den Entwicklertools (der Link)
Klicken Sie mit der rechten Maustaste und wählen Sie „Elementstatus erzwingen“ und wählen Sie „:hover“
Überprüfen Sie den CSS-Tooltip
@YuriyGalanter Es ist über das Fernglassymbol oben links verfügbar. Klicken Sie einfach auf das Symbol und dann auf den Tooltip 🙂
– Sime Vidas
16. Juli 2014 um 20:40 Uhr
Ja, ich habe ein GIF hinzugefügt, damit ich besser sehen kann, was ich tue.
– Irgendein Typ
16. Juli 2014 um 20:41 Uhr
@DonnyP habe ich verwendet byzanz-record. Es ist ein Paket, das Sie bekommen können sudo apt-get install byzanz.
– Irgendein Typ
16. Juli 2014 um 20:45 Uhr
Es gibt auch LICEcap, zeichnet es einen Teil des Bildschirms direkt in einem superoptimierten GIF auf. Windows, OS X und Linux.
– fregante
17. Juli 2014 um 7:26 Uhr
@bfred.it LICEcap ist nicht für Linux verfügbar. Siehe dieses Github-Problem zum Thema. Scheint, dass die Leute damit Erfolg haben WEIN.
– Isaac Gregson
19. Juli 2014 um 7:26 Uhr
zıəs uɐɟəʇs
Sowohl der Web Inspector von Safari als auch der von Chrome bieten Kontrollkästchen, in denen Sie die Option aktivieren können :active, :focus, :hover und :visited Zustand eines Elements. Die Verwendung dieser könnte noch einfacher sein.
Safari:
Chrom:
Der Tooltip wird nicht ausgelöst durch :hover Stile.
– Sime Vidas
17. Juli 2014 um 12:05 Uhr
Firebug auf Firefox hat dasselbe (minus :visiteddas eingeschränkt ist, um Snooping zu verhindern) – auf der Registerkarte “HTML” befindet es sich im Dropdown-Menü “Stil” auf der rechten Seite
– Iskata
17. Juli 2014 um 12:57 Uhr
@Izkata Klicken Sie für die nativen Entwicklertools von Firefox mit der rechten Maustaste auf das Element in den Breadcrumbs oder der HTML/DOM-Struktur und wählen Sie aus :hover, :active oder :focus.
– K893824
18. Juli 2014 um 10:16 Uhr
Es gibt auch eine andere knifflige Methode:
Gehen Sie über das Element, das Ihren Tooltip erscheinen lässt.
Klicken Sie mit der rechten Maustaste, um das Kontextmenü zu öffnen.
Bewegen Sie Ihre Maus zu Ihrem Dev-Tool-Fenster und klicken Sie mit der linken Maustaste auf eine beliebige Stelle im Dev-Tool-Bereich.
Ihr Tooltip bleibt sichtbar, Sie können ihn dann auf der Registerkarte Element einsehen.
Auf Chrome getestet. Scheint bei Firefox nicht zu funktionieren.
So habe ich es in der Vergangenheit gemacht, aber die Antwort von @SomeGuy ist der beste und einfachste Weg.
– John Washam
17. Juli 2014 um 16:35 Uhr
@JohnDubya Nein, ist es wirklich nicht. Es mag der offizielle Weg sein, aber es ist sicherlich nicht einfacher. Es sind viel zu viele Schritte erforderlich.
– Mini Ragnarok
17. Juli 2014 um 20:39 Uhr
Das mache ich normalerweise, aber es funktioniert nicht immer.
– Synetech
22. Oktober 2017 um 2:41 Uhr
blgt
Während die Antwort von @SomeGuy ausgezeichnet ist (t-up für animierte GIFs), können Sie dies alternativ immer programmgesteuert tun. Öffnen Sie einfach die Konsole und geben Sie den Ereignisnamen ein
$("button:contains('Tooltip on right')").mouseenter();
Und der Tooltip erscheint im DOM und kann manuell überprüft/geändert werden:
<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>
Wenn Sie wie in den Kommentaren den Mauszeiger über den Seitenrahmen bewegen, können Sie andere Ereignisse auslösen, z mouseout. Um dies zu verhindern, können Sie drücken F8 (wie in der gem. Antwort) oder tippen debugger; (was sein Skriptäquivalent ist)
12383700cookie-checkUntersuchen Sie Elemente, die nur angezeigt werden, wenn ein anderes Element mit der Maus überfahren/eingegeben wirdyes
Nur zu Ihrer Information, wenn das Element wegen CSS statt JS erscheint, können Sie a erzwingen
:hover
Klicken Sie darauf mit der rechten Maustaste auf das Element in der Ansicht Elemente (DOM) in Dev Tools, wählen Sie „Force Element State“ und dann „:hover“.– MMM
17. Juli 2014 um 8:56 Uhr