Semi: Popup-Blocker erkennen

Hallo!

Gerade eben besuchte ich die Seite  http://webmessenger.msn.com/
(Firefox, Linux) und da sagte mir die Seite doch glatt:

+------------------------------------------------------------------------+
    |                      Pop-up blocker detected.                          |
    |                                                                        |
    |  To use Web Messenger, your web browser must allow pop-up windows.     |
    |  For information about allowing pop-up windows, see the instructions   |
    |  for your pop-up blocking software.                                    |
    |                                                                        |
    +------------------------------------------------------------------------+

Wie kann man das machen, dass man selbst auf einer Webseite
entdeckt ob der User einen Popup-Blocker hat?

Weil auf meiner Webseite würde ich auch gerne die Benutzer darauf
hinweisen dass sie das Popup nur sehen können wenn sie keinen
Popup-Blocker haben.
(Das Popup brauch ich leider - Kundenwunsch)

Danke
Semi

  1. Wie kann man das machen, dass man selbst auf einer Webseite
    entdeckt ob der User einen Popup-Blocker hat?

    Quelltext angucken: http://sc.webmessenger.msn.com/10.1.0323.0/js/welcome.js

    Struppi.

    1. Lieber Struppi,

      Du meinst die Stelle im Quelltext auf http://sc.webmessenger.msn.com/10.1.0323.0/js/welcome.js, wo es heißt:

      pw1 = window.open(testUrl,wName,"width=0,height=0,left=5000,top=5000",true);  
      if (null == pw1 || true == pw1.closed)  
      ...
      

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      1. Du meinst die Stelle im Quelltext auf http://sc.webmessenger.msn.com/10.1.0323.0/js/welcome.js, wo es heißt:

        Naja, ich hatte die Datei mit Absicht nicht verlinkt, ich halte den code nicht für vorzeigbar.

        pw1 = window.open(testUrl,wName,"width=0,height=0,left=5000,top=5000",true);

        if (null == pw1 || true == pw1.closed)
        ...

          
        Nein, ich meinte die ganze Funktion, ob das sinnvoll ist, ist eine andere Frage.  
          
        Struppi.
        
        -- 
        [Javascript ist toll](http://javascript.jstruebig.de/)
        
        1. Lieber Struppi,

          ich halte den code nicht für vorzeigbar.
          Nein, ich meinte die ganze Funktion

          das ist allerdings wahr!

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

  2. Hi,

    Wie kann man das machen, dass man selbst auf einer Webseite
    entdeckt ob der User einen Popup-Blocker hat?

    gar nicht. Du kannst Einzelfälle erkennen, mehr nicht. Ein solcher Einzelfall ist bei Dir offenbar gegeben.

    (Das Popup brauch ich leider - Kundenwunsch)

    Berate Deinen Kunden besser. Du kannst ihn beispielsweise darauf hinweisen, dass kein Mensch auf diesem Planeten ausgerechnet wegen seiner Website sein System umkonfigurieren wird - falls er überhaupt die Möglichkeit dazu hat. Ein entsprechender Hinweis, wie Du ihn hier zitiert hast, ist potenziell beleidigend und hat im _günstigsten_ Fall nur die Wirkung, dass der Besucher sofort weg geht und nie wieder kommt.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hi,

    Wie kann man das machen, dass man selbst auf einer Webseite entdeckt ob der User einen Popup-Blocker hat?

    indem man ein Popup öffnet (bzw. versucht zu öffnen) und danach dessen Existenz abfragt. Geht mit Javascript relativ unkompliziert, und ohne Javascript hast du eh keinen Ärger mit Popups.

    Ciao,
     Martin

    --
    F: Was ist ekliger als ein angebissener Apfel mit einem Wurm drin?
    A: Ein angebissener Apfel mit einem halben Wurm.
    1. Hi,

      indem man ein Popup öffnet (bzw. versucht zu öffnen) und danach dessen Existenz abfragt.

      nur eine der zwei möglichen Antworten erlaubt Schlüsse. Und selbst bei diesen bin ich nicht sicher.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi,

        nur eine der zwei möglichen Antworten erlaubt Schlüsse. Und selbst bei diesen bin ich nicht sicher.

        Man kann mit dem Popup via JS kommunizieren. Wenn das nicht geht, gibt's auch kein Popup ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          nur eine der zwei möglichen Antworten erlaubt Schlüsse. Und selbst bei diesen bin ich nicht sicher.
          Man kann mit dem Popup via JS kommunizieren. Wenn das nicht geht, gibt's auch kein Popup ...

          zumindest noch nicht. Und wenn es geht, was ist dann? Hat der installierte Popup-Blocker noch nicht zugeschlagen?

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            Man kann mit dem Popup via JS kommunizieren. Wenn das nicht geht, gibt's auch kein Popup ...
            zumindest noch nicht.

            Die Timeout-Problematik ist allerdings kein Popup-spezifisches Problem - erst recht nicht bei HTTP. Daran zu denken, ist also prinzipiell schon nicht verkehrt - bevor der Herz-OP-Robot, der via Popup gesteuert werden soll, die Arterie durchsäbelt. :)

            Und wenn es geht, was ist dann? Hat der installierte Popup-Blocker noch nicht zugeschlagen?

            Wie? So böse Blocker gibt es? Skandal! Ich schlage die Etablierung eines Constant Control Communication for Popups (CCCP - Leitspruch: "Popups aller Länder vereinigt euch!") vor - also die Benutzung von setInterval() ... ;)

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. Hallo,

            Man kann mit dem Popup via JS kommunizieren. Wenn das nicht geht, gibt's auch kein Popup ...
            zumindest noch nicht. Und wenn es geht, was ist dann? Hat der installierte Popup-Blocker noch nicht zugeschlagen?

            was meinst du mit "noch nicht"? Entweder er *hat* das Öffnen eines Popups verhindert oder nicht. Und wenn er es *nicht* verhindert hat, dann existiert das Popup. Punkt.
            Wenn natürlich der Benutzer das Popup schneller schließt als die Abfrage stattfindet, führt das zum Urteil "Popup-Blocker". Aber auch das sehe ich als realistisches Ergebnis: Der Anwender will *auf gar keinen Fall* ein Popup haben.

            Ciao,
             Martin

            --
            Der Gast geht solange zum Tresen, bis er bricht.
            1. Hi,

              zumindest noch nicht.
              was meinst du mit "noch nicht"?

              Asynchronität. Wer garantiert Dir, dass kein Fenstermanager dies erfordert?

              Entweder er *hat* das Öffnen eines Popups verhindert oder nicht. Und wenn er es *nicht* verhindert hat, dann existiert das Popup. Punkt.

              Falsch. Wer ist "er"?

              Wenn natürlich der Benutzer das Popup schneller schließt als die Abfrage stattfindet, führt das zum Urteil "Popup-Blocker".

              Ich halte es für unwahrscheinlich, dass der Benutzer schneller das allmählich erscheinende Fenster schließen kann, als die nächste Code-Zeile die Referenz überprüft.

              Aber auch das sehe ich als realistisches Ergebnis: Der Anwender will *auf gar keinen Fall* ein Popup haben.

              Viel wahrscheinlicher ist, dass der separat installierte Popup-Blocker _langsamer_ ist als die Code-Abarbeitung.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi Cheatah,

                Asynchronität. Wer garantiert Dir, dass kein Fenstermanager dies erfordert?

                Wieso Fenstermanager? Der Popup-Blocker soll doch das Öffnen eines Fensters verhindern; der Fenster-Manager bekommt also nie den Auftrag, ein Fenster zu öffnen. Wenn doch, ist der Blocker unbrauchbar.

                Entweder er *hat* das Öffnen eines Popups verhindert oder nicht. Und wenn er es *nicht* verhindert hat, dann existiert das Popup. Punkt.
                Falsch. Wer ist "er"?

                Nicht falsch, aber vielleicht vergaß ich zu erwähnen, dass die Prüfung auf Existenz des Popups selbstverständlich erst nach einer angemessenen Wartezeit erfolgen darf, weil ein Popup, das *nicht* verhindert wird, eine gewisse Zeit braucht, sich zu entfalten. Das erschien mir selbstverständlich. Ach ja, und "er" ist selbstverständlich der Popup-Blocker. Siehe vorhergehender Satz in meinem Posting.

                Wenn natürlich der Benutzer das Popup schneller schließt als die Abfrage stattfindet, führt das zum Urteil "Popup-Blocker".
                Ich halte es für unwahrscheinlich, dass der Benutzer schneller das allmählich erscheinende Fenster schließen kann, als die nächste Code-Zeile die Referenz überprüft.

                Ich auch, ich halte es sogar für nahezu unmöglich, hatte das nur der Vollständigkeit halber erwähnt, um Spitzfindigkeiten zu vermeiden. ,-)

                Aber auch das sehe ich als realistisches Ergebnis: Der Anwender will *auf gar keinen Fall* ein Popup haben.
                Viel wahrscheinlicher ist, dass der separat installierte Popup-Blocker _langsamer_ ist als die Code-Abarbeitung.

                Was meinst du mit "langsamer"? Wenn er korrekt und den Anforderungen entsprechend implementiert ist, dann eliminiert er den Code, der das Popup erzeugen will, bevor oder während dieser ausgeführt wird, z.B. indem er die Methode window.open() mit einer "leeren" Methode überschreibt, die nichts weiter tut als null zurückzugeben.

                So long,
                 Martin

                --
                Idealismus wächst mit der Entfernung zum Problem.
                1. Hi,

                  Wenn doch, ist der Blocker unbrauchbar.

                  Unbrauchbarkeit hat noch nie Menschen von der Nutzung abgehalten - Millionen IE-Nutzer beweisen das. >;->

                  z.B. indem er die Methode window.open() mit einer "leeren" Methode überschreibt, die nichts weiter tut als null zurückzugeben.

                  Es gibt aber Popupblocker, bei denen Window.open einen Wertzurückgbt, aber das Popup existiert dann trotzdem nicht.

                  M.W. gibt es aber keine Popupbocker, die dann auch einen Zugriff auf das ja nicht vorhandene Fenster ermöglichen - schlicht mangels Masse ... ;-)

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                  1. Hi Cybaer,

                    Unbrauchbarkeit hat noch nie Menschen von der Nutzung abgehalten - Millionen IE-Nutzer beweisen das. >;->

                    Das sind die Momente, in denen ich die Zitatesammlung schmerzhaft vermisse ;-)

                    Apropos: Wollte nicht jemand da wieder eine programmieren? Wie weit sind die? Das dauert mir zu lange - kann man denen helfen?

                    MfG, Dennis.

                    1. Hallo Dennis,

                      [Zitatesammlung] Wollte nicht jemand da wieder eine programmieren?

                      Alexander Brock, Marc Reichelt und Christoph Schnauß arbeiten daran.

                      Wie weit sind die?

                      Number of weeks: 8
                      Total commits analyzed: 207
                      Total file changes: 356

                      Das dauert mir zu lange

                      Bookmarks helfen.

                      kann man denen helfen?

                      Ich fürchte, dafür ist es zu spät. >;)

                      Grüße
                       Roland