Javascript window.location in neuer Registerkarte


123

Ich leite den Benutzer über eine URL zu einer URL um, window.locationaber diese URL wird im Browser auf derselben Registerkarte geöffnet. Ich möchte, dass es in einem neuen Tab geöffnet wird. Kann ich das mit window.location machen? Gibt es eine andere Möglichkeit, diese Aktion auszuführen?



Ist window.locationeine Anforderung? Oder können andere JS-Lösungen angeboten werden?
Khez

@Khez: andere JS können angeboten werden.
Muhammad Imran Tariq

Antworten:


27

Ich glaube nicht, dass es eine Möglichkeit gibt, dies zu tun, es sei denn, Sie schreiben eine Browser-Erweiterung. Sie können versuchen, zu window.openhoffen, dass der Browser des Benutzers so eingestellt ist, dass neue Fenster in neuen Registerkarten geöffnet werden.


438
window.open('https://support.wwf.org.uk', '_blank');

Der zweite Parameter macht es in einem neuen Fenster geöffnet. Vergiss nicht, den informativen Artikel von Jakob Nielsen zu lesen :)


10
Aber was ist, wenn Ihr Browser die Einstellungen im Popup blockiert hat? das wird nicht wok.
Pregmatch

@ Alex meh ... nicht wirklich die "richtige" Antwort. Wenn ich dies in Firefox versuche, wo ich Popup-Fenster verhindere, schlägt dieser Code fehl.
TARKUS

14

Dies funktioniert bei Chrome 53. Habe nirgendwo anders getestet:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}

6

Mit jQuery ist es noch einfacher und funktioniert auch mit Chrome

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})

5

Sie können sogar verwenden

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');

Dadurch wird es auf derselben Registerkarte geöffnet, wenn das Popup blockiert ist.


Erstaunliche ODER-Logik
Hammad Sajid

1
Danke dir! Das hat super geklappt.
thenomadicmann vor

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.