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?

Muhammad Imran Tariq
la source
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.

Ian Oxley
la source
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 :)

Shane Reustle
la source
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();
}
rodrigo-silveira
la source
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();    
})
relief.melone
la source
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.

Fanis Mahmalat
la source
Amazing OR logic
Hammad Sajid
1
Je vous remercie! Cela a très bien fonctionné.
thenomadicmann