Unterschiedliches Verhalten des Firefox zwischen 44.0 und heute beim Öffnen von Seiten per Javascript

  • Firefox-Version
    78.0.2
    Betriebssystem
    Windows 10

    Hallo zusammen.

    Wie man unschwer erkennen kann, bin ich neu hier. Ich weiß nicht, ob ich hier konkret richtig bin oder das eher schon ein Bugreport für Mozilla wäre. Aber vielleicht könnt ihr mir schon weiterhelfen.

    Konkretes Problem: Ich möchte per Javascript eine neue Seite öffnen lassen. Das kann in einem neuen Tab oder in einem ganz neuen Browser-Fenster passieren. Konkret wird diese Entscheidung von den folgenden Einstellungen in der about:config beeinflusst:

    browser.link.open_newwindow = 3

    browser.link.open_newwindow.restriction = 2

    Wenn meine Recherche stimmt, haben sich diese beiden Default-Werte in der Firefox-Konfig seit Version 1.5 bzw. 2.0 nie geändert.

    Hier, in diesem Forum bin ich u.a. auf die deutsche Erläuterung gestoßen, was die beiden Werte konkret bedeuten: Pop-ups im neuen tab öffnen

    Und ich behaupte nun, dass sich das Verhalten in Firefox zwischen 44.0 und 78.0.2 irgendwo verändert haben muss. Also die Standard-Konfig-Werte sind in beiden Versionen initial identisch (3 und 2), jedoch verhält sich der Firefox 78 mit dem selben Quellcode nun anders als früher. Und meiner Meinung nach nicht mehr so, wie es die Spezifikation eigentlich aussagt.

    Ich habe folgendes simples Beispiel:

    Code
    window.open(
        "http://www.tagesschau.de",
        "_blank",
        'menubar=yes,scrollbars=yes,status=yes,toolbar=yes,titlebar=no,location=no,resizable=yes');

    Nach meinem Verständnis der oben erwähnten abount:config-Werte müsste hier der Browser ein neues Fenster öffnen, weil ich hier als 3. Parameter zusätzlich Eigenschaften für das neue Fenster übergebe.

    Und ich kann es eindeutig reproduzieren: In einem gänzlich frisch installierten FF 44.0 (auch mit ganz neuem Profil) wird ein neues Fenster geöffnet. In einem frisch installiertem FF 78 (ebenso mit frischem Profil) wird aber ein neuer Tab geöffnet.

    Nun kann ich (mit sehr viel Fleissarbeit) natürlich noch konkret die Version einkreisen, ab der das Problem tatsächlich auftritt.

    Was ich mich aber grundsätzlich frage:

    Ist das ein jetzt Bug? Oder gibt es zu diesem Thema zwischen Version 44 und 78 irgendeine weitere bewusste/bekannte Änderung in Firefox oder dessen about:config, die nun zu diesem neuem Ergebnis führt, welches ich aber nicht haben möchte.

    Ich möchte gezielt ein neues Fenster mit gewissen Parametern und bestimmter Höhe/Breite öffnen lassen.

    Im IE 11 und Edge klappt das weiterhin mit dem obigen JS-Code. In FF 78 (und auch Chrome) klappt das aber nicht mehr.

    So, das war viel Text. Ich hoffe, ich konnte mein Problem ausreichend schildern und habe alle Foren-Tipps/Hinweise/Regeln berücksichtigt.

    Gruß

    • Hilfreichste Antwort

    Hallo,

    was den dritten Parameter von window.open() betrifft: Einiges davon wird seit Firefox 76 nicht mehr unterstützt und wurde sowieso außer von Firefox nur vom Internet Explorer und nicht von anderen Browsern unterstützt. In der Form, wie von dir angegeben, wird durch die folgende (zweite) Einstellung in Firefox gesteuert, ob die Seite in einem Tab oder Fenster öffnet:

    Falls du ein sogenanntes Popup öffnen möchtest, ändere den Code beispielsweise wie folgt:

    JavaScript
    window.open('http://www.tagesschau.de', '_blank', 'toolbar=yes,menubar=no,status=yes,scrollbars=yes');

    Die genauen Bedingungen können dem Quellcode entnommen werden:

    https://hg.mozilla.org/mozilla-centra…e49a9ceff#l9.12

  • Guten Morgen.

    Großartig, Deine Lösung hat mir geholfen. :)

    Und ja, stimmt, die im dritten Parameter hinterlegten Features in meinem Beispiel sind z.T. veraltet bzw. nur Browser-spezifisch gültig. Offensichtlich kamen damit aber die Browser lange Zeit alle klar bzw. haben sich so wie von mir beabsichtigt verhalten.

    Ich werde mir nun nochmal die einzelnen Browser im Zusammenspiel mit den Parametern anschauen und dann entweder eine gemeinsame Lösung finden oder ggf. mit einer Browser-Weiche arbeiten, denn zumindest der IE11 muss auch noch korrekt unterstützt werden.

    Vielen Dank, Sören