JavaScript wird in einem neuen Fenster geöffnet, nicht in einem Tab

Lesezeit: 7 Minuten

JavaScript wird in einem neuen Fenster geoffnet nicht in einem
Adam

Ich habe eine Auswahlbox, die anruft window.open(url) wenn ein Element ausgewählt wird. Firefox öffnet die Seite standardmäßig in einem neuen Tab. Ich möchte jedoch, dass die Seite in einem neuen Fenster geöffnet wird, nicht in einem neuen Tab.

Wie kann ich das erreichen?

  • siehe Beispiel unter “jsfiddle.net/HLbLu

    – Michael Freigeim

    24. Februar 2014 um 7:46 Uhr


  • mögliches Duplikat von Open a URL in a new tab using JavaScript

    Benutzer456814

    1. Mai 2014 um 18:07 Uhr

  • Sie können verwenden github.com/reduardo7/xpopup

    – Eduardo Cuomo

    15. Juli 2015 um 12:40 Uhr

1646639715 575 JavaScript wird in einem neuen Fenster geoffnet nicht in einem
DNS

Geben Sie das Fenster “Features” an open Anruf:

window.open(url, windowName, "height=200,width=200");

Wenn Sie eine Breite/Höhe angeben, wird diese in einem neuen Fenster statt in einem Tab geöffnet.

Sehen https://developer.mozilla.org/en-US/docs/Web/API/Window.open#Position_and_size_features für alle möglichen Funktionen.

  • Guter Tipp. Ich denke, Opera wird dies immer noch in einem Tab öffnen :).

    – Kevin Tighe

    7. April 2009 um 17:35 Uhr

  • Arbeiten in IE6, FF 3.6, Chrome 9.0

    – James Westgate

    10. März 2011 um 11:09 Uhr

  • Funktioniert nicht mehr in FF 11.0, siehe meine Frage! @James

    – Thomas

    31. März 2012 um 14:39 Uhr


  • Funktioniert nicht in den heutigen Browsern. Standardmäßig öffnen sie alle ein neues Fenster in einem neuen Tab des aktuellen Fensters. Es hängt auch von den Browseroptionen ab. Sie können es nicht mit JavaScript steuern.

    – Pawel Hodek

    20. September 2012 um 7:21 Uhr

  • Dies ist NICHT die Tatsache, dass Sie “Höhe = 200, Breite = 200” eingeben, wodurch das Öffnen in einem neuen Fenster durchgeführt wird. Dies ist einfach die Tatsache, dass zusätzliche Parameter (Standort, Status usw.) angegeben werden müssen. Es spielt keine Rolle.

    – Petrus

    28. November 2015 um 11:28 Uhr

JavaScript wird in einem neuen Fenster geoffnet nicht in einem
nwbrad

Sie müssen die Höhe nicht verwenden, stellen Sie nur sicher, dass Sie sie verwenden _blankOhne es wird es in einem neuen Tab geöffnet.

Für ein leeres Fenster:

window.open('', '_blank', 'toolbar=0,location=0,menubar=0');

Für eine bestimmte URL:

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');

  • Aber was ist, wenn ich ihm auch einen Namen geben möchte?

    – Aditi

    10. März 2014 um 12:10 Uhr

  • Zumindest in Chrome, location=0 ist erforderlich, wenn JS von einer Schaltfläche oder einem Ankerelement aufgerufen wird.

    – Ohad Schneider

    16. August 2014 um 11:46 Uhr


  • funktionierte perfekt. musste location=0 auch in Firefox einschließen.

    – Rick James

    8. Februar 2017 um 21:30 Uhr

  • @nwbrad bist du dir über den ‘_blank’-Teil sicher, denn soweit ich weiß, ist ‘_blank’ der Standardwert, wenn wir keinen anderen Wert angeben. In Ihrem Fall muss das Öffnen eines neuen Fensters anstelle eines neuen Tabs etwas mit der Bereitstellung des 3. Parameters für die Funktion window.open zu tun haben. In Ihrem Fall ist es ‘toolbar=0,location=0,menubar=0’. Sie können dies überprüfen, indem Sie diesen dritten Parameter weglassen und ‘_blank’ als 2. Parameter dort belassen.

    – Benutzer1451111

    25. August 2017 um 4:49 Uhr

  • Funktioniert perfekt in modernen Browsern wie Firefox 76 und Internet Explorer 11. Der Tipp ist das Hinzufügen location=0 in den Parametern. Ich würde auch vorschlagen, das Fenster zu benennen, anstatt es zu verwenden _blank Ziel, sodass dasselbe Fenster erneut verwendet wird, wenn der Benutzer mehrmals auf das Element klickt, das das Popup öffnet, und Verkettung mit focus() damit bereits ein geöffnetes Popup den Fokus bekommt: window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();

    – OuzoPower

    1. Juni 2020 um 11:44 Uhr


1646639717 968 JavaScript wird in einem neuen Fenster geoffnet nicht in einem
Jordan S. Jones

Ich kann mich irren, aber nach meinem Verständnis wird dies von den Browsereinstellungen des Benutzers gesteuert, und ich glaube nicht, dass dies überschrieben werden kann.

  • Sie haben Recht, der Benutzer kann die “about:config”-Einstellung “browser.tabs.opentabfor.windowopen” auf “true” setzen, aber das ist eine globale Einstellung und ich möchte das globale Verhalten der Browser unserer Benutzer nicht ändern;)

    – Adam

    7. April 2009 um 17:34 Uhr

  • Ich habe dir gesagt, ich habe Code, der funktioniert. Ich habe dies in die Firebug-Konsole eingegeben: window.open(“”, “poop”, “height=200,width=200,modal=yes,alwaysRaised=yes”); und rate was??? Es klappt!!!!!!

    theman_on_vista

    7. April 2009 um 20:42 Uhr


  • Ja, es funktioniert, aber das scheint ein bisschen wie ein Hack zu sein. Firefox ist so geschrieben, dass das Öffnen eines neuen Fensters oder einer neuen Registerkarte eine Browsereinstellung ist, keine JavaScript-Einstellung. Daher ist es möglich, dass Ihr Vorschlag in einer späteren Version von Firefox nicht genauso funktioniert. Ich verlasse mich lieber nicht auf einen Hack.

    – Adam

    8. April 2009 um 16:22 Uhr

  • Und um es klar zu sagen, ich meine nicht, dass es ein Javascript-Hack ist. Das Hinzufügen von Fensterhöhe und -breite ist eindeutig ein Merkmal der Methode js window.open (w3schools.com/HTMLDOM/met_win_open.asp) Ich meine Hack im Sinne der Manipulation des beabsichtigten Verhaltens von Firefox.

    – Adam

    8. April 2009 um 16:31 Uhr

  • Ich würde es nicht wirklich als Hack bezeichnen. Sie gehen nur Kompromisse bei dem Verhalten ein, das Sie eigentlich haben möchten, und implementieren stattdessen dieses.

    – Matchu

    9. Dezember 2009 um 20:02 Uhr

Versuchen:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");

Ich habe einen Code, der tut, was Sie sagen, aber es gibt eine Menge Parameter darin. Ich denke, das ist das Nötigste, lass es mich wissen, wenn es nicht funktioniert, ich werde den Rest posten.

OK, nach vielen Tests hier mein Fazit:

Wenn Sie auftreten:

     window.open('www.yourdomain.tld','_blank');
     window.open('www.yourdomain.tld','myWindow');

oder was auch immer Sie in das Zielfeld eingeben, dies ändert nichts: Die neue Seite wird in einem neuen Tab geöffnet (hängt also von den Benutzereinstellungen ab).

Wenn Sie möchten, dass die Seite in einem neuen “echten” Fenster geöffnet wird, müssen Sie zusätzliche Parameter angeben. Wie:

window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');

Nach dem Testen scheint es, dass der zusätzliche Parameter, den Sie verwenden, keine Rolle spielt: Dies ist nicht die Tatsache, dass Sie “diesen Parameter” oder “diesen anderen” eingeben, die das neue “echte Fenster” erstellen, sondern die Tatsache, dass es neue Parameter gibt (s ).

Aber etwas ist verwirrt und kann viele falsche Antworten erklären:

Dies:

 win1 = window.open('myurl1', 'ID_WIN');
 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');

Und das:

 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win1 = window.open('myurl1', 'ID_WIN');

wird NICHT das gleiche Ergebnis liefern.

Im ersten Fall beim ersten Öffnen einer Seite ohne zusätzlichen Parameter, wird es in einem neuen geöffnet Tab. Und in diesem Fall wird der zweite Anruf auch in diesem geöffnet Tab wegen des Namens, den du gibst.

Im zweiten Fall, wenn Ihr erster Anruf getätigt wird mit zusätzlicher Parameter, die Seite wird in einem neuen “echtes Fenster“. Und in diesem Fall, auch wenn der zweite Aufruf ohne den zusätzlichen Parameter erfolgt, wird er auch in diesem neuen “echtes Fenster“… aber gleiche Registerkarte!

Das bedeutet, dass der erste Anruf wichtig ist, da er entscheidet, wo die Seite platziert werden soll.

  • Diese Antwort sollte viele ++++ enthalten

    – Mitch VanDuyn

    29. März 2017 um 15:17 Uhr


1646639718 303 JavaScript wird in einem neuen Fenster geoffnet nicht in einem
glomad

Du könntest folgende Funktion ausprobieren:

<script type="text/javascript">
function open(url)
{
  var popup = window.open(url, "_blank", "width=200, height=200") ;
  popup.location = URL;
}
</script>

Der HTML-Code zur Ausführung:

<a href="#" onclick="open('http://www.google.com')">google search</a>

  • Diese Antwort sollte viele ++++ enthalten

    – Mitch VanDuyn

    29. März 2017 um 15:17 Uhr


JavaScript wird in einem neuen Fenster geoffnet nicht in einem
Glückskeks

Das solltest du nicht müssen. Ermöglichen Sie dem Benutzer, die gewünschten Einstellungen zu haben.

Firefox tut dies standardmäßig, weil das Öffnen einer Seite in einem neuen Fenster lästig ist und eine Seite dies niemals tun sollte, wenn dies vom Benutzer nicht gewünscht wird. (Firefox erlaubt Ihnen, Tabs in einem neuen Fenster zu öffnen, wenn Sie es so einstellen).

  • du bist so falsch. Übrigens ist es nicht angebracht, zu sagen, dass Sie nicht müssen, vor allem, wenn es etwas ist, was der Chef will

    theman_on_vista

    7. April 2009 um 17:31 Uhr

  • Versuchen wir, die Kommentare praktisch und hilfreich zu halten. Wir können widersprechen, ohne beleidigend zu sein.

    – Adam

    7. April 2009 um 17:43 Uhr

  • @theman_on_vista: Deinen Chef zu überzeugen ist dein Verantwortung. Ihr Unternehmen hat Ihnen die Verantwortung übertragen, Designprobleme zu lösen. Dazu gehört auch, auf falsche Gestaltungsideen hinzuweisen.

    – Efraim

    19. Juli 2010 um 21:10 Uhr

  • So wahr. Der Bildschirm gehört dem Benutzer und sonst niemandem.

    – Christoph Creutzig

    22. September 2010 um 16:49 Uhr

  • Es liegt im Bereich des Designers, Popup oder Registerkarte auszuwählen. Obwohl ich ein Benutzer bin, der immer Registerkarten bevorzugt, erkenne ich, dass das Design manchmal wirklich nach einem Popup oder wirklich nach einer Registerkarte verlangt. Es sollte im Bereich des Programmierers liegen, dies zu ermöglichen. Abgesehen von philosophischen Differenzen ist diese Art von Kommentar für eine Programmier-Referenzseite völlig unangemessen. Und in diesem Fall ist es kein “soll ich?” Frage. Es ist “wie soll ich?”

    – jbenet

    15. August 2012 um 3:52 Uhr


964150cookie-checkJavaScript wird in einem neuen Fenster geöffnet, nicht in einem Tab

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy