Alexander Foken: Opera: "refuse pop-up windows" per Javascript erkennen ?

Moin Moin zusammen !

Nach langer Zeit wieder mal eine Frage von mir:

Kann man die Einstellung "accept pop-up windows" bzw. "refuse pop-up windows" bei Opera 6.04 in Javascript erkennen ?

Das zugrunde liegende Problem: Opera 6.04 in einer Intranet-Umgebung, ein Bookmarklet (javascript:-URL als Bookmark) soll normalerweise ein eigenes Fenster öffnen (window.open), falls "refuse pop-up windows" aktiv ist, soll stattdessen als Notlösung die URL des aktuellen Fensters verändert werden.

Ich brauche einen Ersatz für OPERA_ACCEPT_POPUP_WINDOWS():

if ( OPERA_ACCEPT_POPUP_WINDOWS() ) {
  window.open(...);
} else {
  location.href=...;
}

Alexander

  1. Hallihallo!

    Ich wüsste zwar nicht, wie man diese Einstellung direkt auslesen könnte, aber mir würde etwas Anderes einfallen, was eigentlich denselben Zweck erfüllen sollte:

    Öffne einfach ein Popup, und frage anschliessend direkt ab, ob das Popup- Fenster existiert. (http://selfhtml.teamone.de/javascript/objekte/window.htm#closed).

    Existiert es nicht mehr, z.B. weil es gar nicht erst geöffnet wurde, leitest Du einfach um.

    Ich hoffe, damit konnte ich Dir helfen...

    Viele liebe Grüße,
    Der Dicki

    1. Moin Moin !

      Öffne einfach ein Popup, und frage anschliessend direkt ab, ob das Popup- Fenster existiert. (http://selfhtml.teamone.de/javascript/objekte/window.htm#closed).

      Existiert es nicht mehr, z.B. weil es gar nicht erst geöffnet wurde, leitest Du einfach um.

      Ich hoffe, damit konnte ich Dir helfen...

      Leider nein, das klappt so nicht.

      Ich habe eine Testseite gebastelt:

      <html>
      <head>
      <title>blabla</title>
      </head>
      <script type="text/javascript" language="Javascript"><!--
       function testpopup()
       {
        alert("Pre open");
        w=window.open("/","test");
        alert("Post open");
        if (w) {
         alert("w is defined");
         if (w.closed) {
          alert("w is closed");
         } else {
          alert("w is not closed");
         }
        } else {
         alert("w is undefined");
        }
       }
      //--></script>
      <body>
      <form action="/" method="GET">
      <input type="button" value="test popup" onclick="testpopup()">
      </form>
      </body>
      </html>

      Bei "Accept pop-up windows" funktioniert alles, w ist definiert und nicht geschlossen. Bei "Refuse pop-up windows" bricht das Script in window.open ab, d.h. "Post open" wird schon nicht mehr angezeigt.

      Irgendwie logisch, aber lästig.

      Alexander

      1. Bei "Accept pop-up windows" funktioniert alles, w ist definiert und nicht geschlossen. Bei "Refuse pop-up windows" bricht das Script in window.open ab, d.h. "Post open" wird schon nicht mehr angezeigt.

        Irgendwie logisch, aber lästig.

        Stimmt beides. :-)
        Aber für den User hat es eben nur Vorteile; so kannst Du einen Popup-aversen User nicht einfach erkennen und umleiten - was ja die ganzen Nervseiten (Porno etc.) sofort ausnutzen würden, wenn sie es könnten.

        Aber vielleicht gibt es ja schon bald einen Prozeß dazu (ähnlich wie gegen WebWasher), daß diese Funktion - und auch das Deaktivieren von JS - wettbewerbswidrige und damit strafbare Handlungen darstellt...

        1. Bei "Accept pop-up windows" funktioniert alles, w ist definiert und nicht geschlossen. Bei "Refuse pop-up windows" bricht das Script in window.open ab, d.h. "Post open" wird schon nicht mehr angezeigt.

          Irgendwie logisch, aber lästig.

          Stimmt beides. :-)
          Aber für den User hat es eben nur Vorteile; so kannst Du einen Popup-aversen User nicht einfach erkennen und umleiten - was ja die ganzen Nervseiten (Porno etc.) sofort ausnutzen würden, wenn sie es könnten.

          Wie denn ? Sie können keine Popups öffnen ! Alles, was dann noch drin wäre, wäre alert("Please accept pop-ups") oder eine Umleitung auf eine Megabyte-große Seite voller Werbebanner.

          Was ist aber, wenn ich mit meinem Bookmarklet die URL und den Titel der aktuellen Seite an ein CGI (cross-platform cross-browser Bookmark-Verwaltung) übergeben will, ohne die aktuelle Seite zu verlassen ? Bleibt nur der Umweg über F12-W Bookmarklet F12-R ?

          Aber vielleicht gibt es ja schon bald einen Prozeß dazu (ähnlich wie gegen WebWasher), daß diese Funktion - und auch das Deaktivieren von JS - wettbewerbswidrige und damit strafbare Handlungen darstellt...

          Mir egal, ich hab den Installer noch. Und noch einige Andere für alte Browser bis zurück zum Netscape 3 Gold. ;-)

          Alexander