So stoppen Sie die Website-Navigation: Popup-Fenster im Browser

622
fixer1234

Ich bin auf ein nerviges Popup gestoßen und kann nicht herausfinden, wie ich es unterdrücken kann. Das Problem sind Links auf bestimmten Websites, die sich auf die Website-Navigation beziehen und die aktiviert werden, wenn Sie mit der Maus darauf zeigen. Das passiert bei allen Browsern. Ich kann mich noch nicht an dieses Verhalten erinnern, aber ich laufe plötzlich mit mehreren Browsern und mehreren Sites darauf ein.

Bei amazon.com und walmart.com handelt es sich um mindestens zwei Websites, auf die ich hier stoße. Auf beiden Seiten befindet sich eine Reihe von Helfen zum Einkaufen von Helfern (in den Bildern unten eingekreist), die sich am oberen Rand der Produktseiten befinden. Dies sind Site-Navigationsmenüs. Wenn Sie auf einen dieser Links klicken, gelangen Sie zu einer speziellen Seite.

Aber es gibt ein Hover-Feature. Wenn Sie den Mauszeiger über die meisten dieser Links bewegen, wird ein Fenster mit einem Menü mit Links angezeigt, einer abgekürzten Version der "Klick-Seite". Dieses Fenster deckt einen großen Teil des Bildschirms ab und bleibt solange angezeigt, wie sich der Mauszeiger über einem beliebigen Teil des Popup-Fensters befindet. Es gibt andere ähnliche "Hover-Sprengfallen", die auf der gesamten Seite verstreut sind.

Das Problem

Das Problem ist, dass es keine Schwebeflugverzögerung gibt, sodass das bloße Übergehen einer dieser Verbindungen als Schwebeflug behandelt wird. Durch versehentliches Übergehen von etwas in diesem Minenfeld wird die Seite plötzlich durch ein riesiges Navigationsmenü (oder einen anderen Inhalt) verdeckt, das die Seite so lange blockiert, bis der Mauszeiger außerhalb dieses Fensters bewegt wird. Noch schlimmer ist, dass ich mich manchmal auf einer neuen Seite befinde, die sich auf Müll im Popup-Fenster bezieht.

Mein Hauptbrowser ist Firefox (V62), aber ich habe es mit Chromium und Vivaldi unter Windows 7 und Linux sowie mit dem Internet Explorer unter Windows repliziert. Daniel B kommentierte, dass er es auch mit Edge replizierte. (Früher schien es, als hätten sich die Microsoft-Browser anders verhalten, was aber nicht der Fall ist.)

Fragen:

  • Kann der verwendete Popup-Mechanismus aus dem Quellcode der Webseite für die unten angegebenen Beispiellinks leicht ermittelt werden?
  • Gibt es eine Möglichkeit, diese Aktion in Firefox oder einem Chrom-basierten Browser zu unterdrücken?

Aktualisieren

@Kinnectus kommentierte, dass JavaScript wahrscheinlich verwendet wird, um den Popup-Inhalt anzuzeigen / auszublenden. Ich habe Javascript auf diesen Seiten deaktiviert und das ist der Mechanismus. Leider deaktiviert das Deaktivieren von Javascript auch andere wichtige Funktionen auf der Seite. Der Mechanismus wurde also bestätigt, aber jede Lösung müsste operativer sein als das Deaktivieren von Javascript.



Wie reproduzieren?

Ich habe entdeckt, dass das Reproduzieren des Problems nicht so einfach ist, wie ich dachte. Anscheinend passen die Websites den Inhalt an Ihren vorherigen Verlauf auf der Website an, je nachdem, ob Sie auf der Website angemeldet sind, und sogar anhand der Route, die zur Navigation auf der Produktseite verwendet wird (wahrscheinlich die Quelle früherer Verwirrung beim Replizieren der Symptome).

Ich werde als Beispiel einen spezifischen Link für jede Site angeben, aber die Variation kann die Antwortmöglichkeiten einiger Leser einschränken. Zum Beispiel habe ich die direkten Links unten auf dem Computer meiner Frau getestet und verschiedene Funktionen der Seite erhalten, bevor ich merkte, dass sich die Site an sie "erinnert" hat, und sie automatisch angemeldet hat. Die Bildschirme haben sich geändert, als ich sie abgemeldet habe.

Hier ist eine Produktseite bei walmart.com mit eingekreisten Einkaufshelferreihen:

So stoppen Sie die Website-Navigation: Popup-Fenster im Browser

Schweben oder Überfahren einer der eingekreisten Verbindungen:

So stoppen Sie die Website-Navigation: Popup-Fenster im Browser

Hier ist eine Produktseite bei amazon.com mit der eingekreisten Einkaufshelferreihe:

So stoppen Sie die Website-Navigation: Popup-Fenster im Browser

Schweben oder Überfahren einer der eingekreisten Verbindungen:

So stoppen Sie die Website-Navigation: Popup-Fenster im Browser

Auf allen Produktseiten bei Amazon wird unabhängig von der Route der Account & ListsLink oben rechts angezeigt, aber ich kann nicht sicher sein, dass es sich um denselben Mechanismus handelt.



Forschung

Bei der Recherche habe ich keine Online-Diskussion über dieses Problem mit Navigationsmenüs gefunden (aber es scheint sehr aktuell zu sein, was auch daran zu erkennen ist, dass das Aufrufen einer Produktseite über ein altes Lesezeichen oder einen Verlaufslink häufig nicht funktioniert.) Das Symptom wird zwar angezeigt, die Suche auf derselben Seite erfolgt jedoch über eine neue Suche. Es gibt jedoch Diskussionen, die sich auf Pop-Ups anderer Art beziehen, mit Lösungen wie:

  • Ändern der Eigenschaften der Maus, z MouseHoverTime. Ich möchte jedoch die Leistung bei legitimen Hover-Optionen wie Tooltips nicht beeinträchtigen. Auch wenn es sich tatsächlich um eine Lösung handelt, MouseHoverTimehandelt es sich um eine Windows-Registrierungseinstellung, und mir ist keine entsprechende Einstellung in Linux bekannt.
  • Pop-Ups blockieren. Diese sind Teil der Site-Navigation und nicht die Art von Dingen, auf die sich Blocker konzentrieren. Ich habe die am besten bewerteten Popup- und Werbeblocker installiert, die sich nicht darauf auswirken.

    Ich habe Poper Blocker installiert, der auch Überlagerungen blockieren kann. Es hat diese nicht alleine erkannt, und das Navigieren zum Kontextmenü wurde als das Navigieren vom Fenster aus betrachtet. Daher gab es keine Möglichkeit, Poper Blocker dazu zu bringen, zu überprüfen, während das Fenster vorhanden war. Dies schließt Overlays nicht definitiv aus, aber Poper Blocker ist das einzige Add-On, von dem ich weiß, dass es sie blockiert. In beiden Fällen führt dies nicht zu einer Lösung.

  • Blockieren bestimmter URLs Diese Popups sind keine URLs.
  • Diese Frage im Mozilla-Supportforum bezieht sich auf URL-Popups. In der akzeptierten Antwort werden jedoch einige Änderungen in Firefox V61 beschrieben, die durch Modifizieren behoben werden können userChrome.css. Ich habe keine Ahnung, ob das damit zusammenhängt, und es würde das ähnliche Problem mit Chromium-basierten und Microsoft-Browsern nicht erklären. Ich bin auch kein Programmierer, und selbst wenn das eine Lösung ist, war es mir nicht hilfreich.
  • Ich habe bestätigt, dass das Auslösen durch Übergeben keine Browserfehlfunktion aufgrund von Add-Ons ist.
1
Ich ging zu einer Produktseite, schwebte über den Links und nichts passierte. Ramhound vor 5 Jahren 0
@Ramhound, ich habe es mit mehreren Browsern (Firefox & Vivaldi) in Windows 7 getestet (die einzige Version, die ich habe) und bekomme dasselbe, obwohl ich herausfand, dass nicht jeder der Links in dieser Leiste beim Hover auslöst. Es wäre interessant, herauszufinden, welche Unterschiede zwischen unseren Systemen bestehen, da es sich anhört, als sei in Ihrem Setup die "Lösung". fixer1234 vor 5 Jahren 0
Habe ich nicht erwähnt, dass ich Edge verwende? Ich benutze jedoch Chromium bei der Arbeit und habe mich bei Amazon manchmal mit den von Ihnen beschriebenen Problemen beschäftigt. Ramhound vor 5 Jahren 0
Heute Abend ist es zu spät, aber [ich werde hier bleiben] (https://chat.stackexchange.com/rooms/84736/pop-up-in-browser), damit wir diese Unterschiede diskutieren können Ramhound vor 5 Jahren 0
uBlock Origin-Add-On kann hilfreich sein. Biswapriyo vor 5 Jahren 0
@Biswapriyo, danke für den Vorschlag. Es sieht so aus, als sei dies den Adblockern und Popup-Blockern ähnlich, die ich ausprobiert habe, nur es können zusätzliche Listen hinzugefügt werden. Was ich vorfinde, ist eine andere Art von Pop-Up, die nicht in irgendeiner Liste enthalten wäre. Es sind Links zum Site-Navigationsmenü, die nicht nur funktionieren, wenn Sie darauf klicken, sondern auch aktiviert werden, wenn Sie mit der Maus darüber fahren. fixer1234 vor 5 Jahren 0
Bei IE oder Edge gibt es für mich nichts anderes, Seiten verhalten sich genauso wie Firefox. Der Amazon-Hover-Effekt hat eine kurze Verzögerung (100-200ms, denke ich), während Walmart sofort eintritt. Der Hover-Effekt von Walmart ist jedoch unterbrochen und verschwindet häufig, wenn Sie versuchen, die Maus in das Popup zu bewegen. // Sie können diese Popups - oder besser noch die Auslöserelemente - jederzeit mithilfe eines erweiterten Werbeblockers selbst blockieren. Daniel B vor 5 Jahren 2
@ DanielB, danke für die Eingabe. Wollen Sie damit sagen, dass Sie in IE und Edge Hover-Action erhalten? Ramhound hat es in Edge nicht gefunden, und ich habe es nicht in IE erhalten, daher klingt es so, als ob hier mehr passiert ist (möglicherweise ein Einstellungsunterschied in den Microsoft-Browsern?). Bei Amazon bekomme ich manchmal eine kurze Verzögerung und kann einen Link übergehen, ohne ihn auszulösen, aber normalerweise nicht. Ich hatte kein Glück mit Anzeigen oder Popup-Blockern, die sich auf sie auswirken. Poper Blocker blockiert auch Überlagerungen, aber ich zögere, sie neu zu laden. fixer1234 vor 5 Jahren 0
Die Funktion, auf die Sie sich beziehen - mit der eine Verzögerung des Inhalts nur dann angezeigt wird, wenn der Mauszeiger länger als einen definierten Zeitraum schwebt - wird als "Hover-Intent" bezeichnet. Der Name sagt alles. Es handelt sich um eine JavaScript-Lösung innerhalb einer Webseitenquelle. Ohne ein Browser-Plugin für bestimmte Tags und Sites / Domains zu verwenden, gibt es wenig, was Sie tun können ... Javascript für die Domain deaktivieren? Gibt es ein Plugin, das das kann ?! PS: Sie sind keine Popups. Sie sind normalerweise verstecktes HTML (bereits geladen oder über AJAX), das mithilfe von JavaScript angezeigt / verborgen wird. Kinnectus vor 5 Jahren 1
@Kinnectus, also sieht es so aus, als ob ich es nicht korrigieren kann, indem ich die Hover-Zeit an meinem Ende einstelle. Du hast mich gerettet, diesen Weg zu gehen. Wenn die Website JavaScript zum Anzeigen / Ausblenden des Inhalts verwendet, ist dies wahrscheinlich nicht die einzige Funktion, die darauf angewiesen ist. Dies deutet darauf hin, dass die Website bei Deaktivierung von JavaScript wahrscheinlich nicht funktioniert. "Normalerweise" bleibt immer noch ein bisschen Hoffnung (vielleicht sind dies Ausnahmen). Ein Browser-Plugin wäre sicherlich eine Lösung, wenn jemand davon Kenntnis hat. Ich werde also noch nicht aufgeben, aber ich danke Ihnen, dass Sie mir geholfen haben, Ihre Erwartungen zu erfüllen. :-) fixer1234 vor 5 Jahren 0
Eine schnelle Suche - nicht getestet - legt nahe, dass das "Resource Override" -Plugin von Kyle Paulsen Ihnen möglicherweise die Möglichkeit bietet, JavaScript in die Seite einzufügen, während Ihr Browser es darstellt. Möglicherweise können Sie eine `hoverIntent'-Bibliothek / -Funktion verwenden / schreiben, in der Sie sie erneut verwenden und die Klassen / IDs einfügen können. Wenn die Seite geladen wird, werden die vorhandenen Funktionen überschrieben. Kinnectus vor 5 Jahren 0
@Kinnectus, danke. Ich bin kein Programmierer, aber das klingt nach einer möglichen Lösung, die zumindest möglich ist. fixer1234 vor 5 Jahren 0
@Kinnectus, ich habe einen Javascript-Blocker geladen, mit dem Sie auf Site- oder Tab-Ebene blockieren können. Auf der Amazon-Seite verschwand die Hover-Funktion sowie einige andere Funktionen auf der Seite. Auf der Walmart-Seite sind diese gesamte Linkreihe sowie einige andere Funktionen verschwunden. Es sieht also so aus, als hätten Sie mit dem Javascript recht. Nun, wenn es nur eine Möglichkeit gab, Features selektiv zu deaktivieren, so dass die Seite nicht durch das Beheben des Problems beendet wird. fixer1234 vor 5 Jahren 0

1 Antwort auf die Frage

1
Kinnectus

Was Sie beschreiben, scheint ein natürliches Design der Website-Navigation / des Designs zu sein, und der Browser folgt einfach dem, was Ihre Maus von ihm verlangt - ein Navigationsmenü, wenn sich der Mauszeiger über einem Element befindet, das die Anzeige des Elements auslösen soll und wann Die Maus verlässt das oder die Auslöserelemente, und der Inhalt wird ausgeblendet (oder ausgeblendet).

Das Öffnen und Schließen von Inhalten zu einem Zeitpunkt, zu dem der Benutzer diese Aktion nicht beabsichtigt hat - z. B. wenn Sie die Maus einfach aus irgendeinem Grund über den Bildschirm bewegen und nicht auf der Website navigieren möchten - hat zu einer Lösung geführt. Von so früh wie ich mich erinnern kann, heißt es hoverIntent(Demo: https://briancherne.github.io/jquery-hoverIntent/ ). Ein jQuery-Plugin, das Entwickler in ihren Quellcode integrieren können, um Elemente anzugreifen, und wenn das Zielelement für eine definierte Mindestzeit über den Hover gezogen wird, lösen Sie den vom Entwickler gewünschten Hover-Effekt aus, z. B. ein Navigationsmenü.

Eine Demonstration des Problems, obwohl das ursprüngliche hoverIntent-Plugin nicht verwendet wird, kann hier demonstriert werden (Quelle: http://www.csslab.cl/2015/05/07/hover-intent-moderno-en-menues-dropdown/ )

Problem

Ergebnis

Fix

Da die Funktionalität der Website ausschließlich den Entwicklern zur Verfügung gestellt wird, ist es sehr schwierig, die beabsichtigte Funktionalität ohne die Verwendung von Browser-Plugins zu überschreiben. Ein solches Plugin, das scheinbar die Möglichkeit bietet, JavaScript und CSS für einzelne Sites selektiv zu überschreiben, ist zumindest die Ressource- Überschreibung von Kyle Paulsen für Chrome ( https://chrome.google.com/webstore/detail/resource-override/). pkoacgokdfckfpndoffpifphamojphii? hl = de ).

Kyle Paulsen bietet ein YouTube-Tutorial mit allen möglichen Funktionen. Es sieht sehr vielversprechend aus und könnte ziemlich leicht zu finden sein: https://www.youtube.com/watch?v=62QIWAP9mMM .

Es sieht so aus, als hätten Sie mit dem Javascript recht. Dies identifiziert die Ursache des Problems, aber da ich kein Programmierer bin, weiß ich nicht genug, um diese vorgeschlagene Lösung zu implementieren. +1, um die Art des Problems zu erkennen und mich einer Lösung näher zu bringen. fixer1234 vor 5 Jahren 0
Der letzte Videolink klang wie Englisch, aber ich konnte nichts davon verstehen. Ich habe versucht, es in Google Translate einzubinden, aber die Zielsprache war "kein Programmierer". :-) Für jemanden mit Programmierhintergrund und Website-Hintergrund sieht das jedoch nach potenziell gutem Zeug aus. fixer1234 vor 5 Jahren 0