JavaScript wird in einem neuen Fenster geöffnet, nicht in einem Tab
Lesezeit: 7 Minuten
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.
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
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.
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
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.
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.
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:
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:
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
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>
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
9641500cookie-checkJavaScript wird in einem neuen Fenster geöffnet, nicht in einem Tabyes
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