Untersuchen Sie Elemente, die nur angezeigt werden, wenn ein anderes Element mit der Maus überfahren/eingegeben wird

Lesezeit: 4 Minuten

Benutzer-Avatar
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?

Versuchen Sie beispielsweise, die Tooltips von Twitter Bootstrap zu überprüfen: http://getbootstrap.com/javascript/#tooltips.

  • 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

Benutzer-Avatar
Irgendein Typ

In Chrome 38.0.2094.0 ist es ziemlich einfach.

So wird es aussehen:
bM1iG

Schritt für Schritt:

  1. Öffnen Sie die DevTools im Bereich „Quellen“.
  2. Lassen Sie den Tooltip erscheinen, indem Sie den Mauszeiger über die Schaltfläche bewegen
  3. Drücken Sie F8, um die Seite einzufrieren
  4. 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:
4XH0R

Schritt für Schritt:

  1. Öffnen Sie die devtools
  2. Wählen Sie das auslösende Element in den Entwicklertools (der Link)
  3. Klicken Sie mit der rechten Maustaste und wählen Sie „Elementstatus erzwingen“ und wählen Sie „:hover“
  4. Ü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


Benutzer-Avatar
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:

Die Kontrollkästchen in Safari

Chrom:

Die Kontrollkästchen in Chrome

  • 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:

  1. Gehen Sie über das Element, das Ihren Tooltip erscheinen lässt.
  2. Klicken Sie mit der rechten Maustaste, um das Kontextmenü zu öffnen.
  3. 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

Benutzer-Avatar
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

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

(bei reinem Javascript kann die spezifische Syntax je nach Browser variieren)

Noch einfacher mit jQuery:

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

In deinem Beispiel (http://getbootstrap.com/javascript/#tooltips), öffnen Sie die Konsole und geben Sie beispielsweise Folgendes 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)

1238370cookie-checkUntersuchen Sie Elemente, die nur angezeigt werden, wenn ein anderes Element mit der Maus überfahren/eingegeben wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy