javascript window.location dans un nouvel onglet


124

Je détourne l'utilisateur vers une URL via window.locationmais cette URL s'ouvre dans le même onglet dans le navigateur. Je veux qu'il soit ouvert dans un nouvel onglet. Puis-je le faire avec window.location? Existe-t-il une autre façon de faire cette action?



Est-ce window.locationune exigence? Ou peut-on proposer d'autres solutions JS?
Khez le

@Khez: d'autres JS peuvent être proposés.
Muhammad Imran Tariq le

Réponses:


28

Je ne pense pas qu'il existe un moyen de le faire, à moins que vous n'écriviez une extension de navigateur. Vous pouvez essayer d'utiliser window.openet en espérant que l'utilisateur a configuré son navigateur pour ouvrir de nouvelles fenêtres dans de nouveaux onglets.


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

Le deuxième paramètre est ce qui le rend ouvert dans une nouvelle fenêtre. N'oubliez pas de lire l'article informatif de Jakob Nielsen :)


10
mais que faire si vos navigateurs ont bloqué les paramètres sur les popup? cela ne fonctionnera pas.
avant

@Alex meh ... pas vraiment la "bonne" réponse. En essayant cela dans Firefox, où j'empêche les fenêtres pop-up, ce code échoue.
TARKUS

Travaillé à partir de mon bookmarklet dans Edge 84.
Ryan Rodemoyer

14

Cela fonctionne pour moi sur Chrome 53. Je n'ai testé nulle part ailleurs:

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

6

avec jQuery, c'est encore plus facile et fonctionne également sur Chrome

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

6

Vous pouvez même utiliser

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

Cela l'ouvrira sur le même onglet si la fenêtre contextuelle est bloquée.


Amazing OR logic
Hammad Sajid

1
Je vous remercie! Cela a très bien fonctionné.
thenomadicmann

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.