Frage

Gibt es eine gute Möglichkeit, festzustellen, ob eine Person einen Popup -Blocker aktiviert hat? Ich muss eine Webanwendung verwalten, die leider unzählige Popups hat, und ich muss überprüfen, ob der Benutzer Popup -Blocker aktiviert hat.

Die einzige Möglichkeit, dies zu tun, besteht darin, ein Fenster aus JavaScript zu öffnen. Überprüfen Sie, ob es offen ist, um festzustellen, ob ein Blocker aktiviert ist, und schließen Sie ihn dann sofort.

Dies ist etwas ärgerlich, da Benutzer, die es nicht aktiviert haben, einen kleinen Blitz auf dem Bildschirm sehen, wenn sich das Fenster sofort öffnet und schließt.

Gibt es noch andere nicht akressive Methoden, um dies zu erreichen?

War es hilfreich?

Lösung

Lesen Erkennen Sie einen Popup -Blocker mit JavaScript:

Grundsätzlich prüfen Sie, ob die Methode "window.open" einen Handle in ein neu eröffnetes Fenster zurückgibt.

Sieht aus wie das:

var mine = window.open('','','width=1,height=1,left=0,top=0,scrollbars=no');
if(mine)
    var popUpsBlocked = false
else
    var popUpsBlocked = true
mine.close()

Andere Tipps

Wie andere gesagt haben, müssen Sie es versuchen und sehen, aber nach dem resultierenden Fensterobjekt ist nicht "falsy" für alle Browser ausreichend.

Opera gibt immer noch a zurück Window Objekt Wenn ein Popup blockiert ist, müssen Sie das Objekt ausreichend untersuchen, um festzustellen, ob es sich um ein echtes Fenster handelt:

var popup = window.open(/* ... */);
var popupBlocked = (!popup || typeof popup.document.getElementById == "undefined");

Wie andere kommentiert haben, ist der einzige Weg, es sicher herauszufinden, es zu versuchen.

Eine gute ungefähre Antwort auf die Frage „Ein Popup-Blocker ist heutzutage“ lautet „Ja“. Alle aktuellen Browser blockieren Ihre Pop-ups standardmäßig. Sie sollten Ihre App besser gestalten, um damit ordnungsgemäß umzugehen. Versuchen Sie nämlich nicht, Fenster zu feiern. Open, außer in der Reaktion auf eine Benutzerinteraktion (normalerweise auf dem Einklick), und es wird Ihnen gut gehen.

Ich glaube nicht, dass es eine Möglichkeit gibt, dies zu erkennen, ohne zu versuchen, ein Fenster zu öffnen, da Popup -Blocker nichts hinzufügen, was in JS verhört werden kann.

Popups, die als Reaktion auf eine Aktion eines Benutzers geöffnet werden - wie beim Klicken auf einen Link - sollten nicht von Popup -Blockern blockiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top