180 votes

javascript window.location in new tab

Je redirige l'utilisateur vers une certaine url par le biais de window.location mais cette url s'ouvre dans le même onglet du navigateur. Je veux qu'elle soit ouverte dans un nouvel onglet. Puis-je le faire avec window.location ? Y a-t-il un autre moyen de réaliser cette action ?

2 votes

0 votes

Est window.location une exigence ? Ou d'autres solutions JS peuvent-elles être proposées ?

0 votes

@Khez : d'autres JS peuvent être proposés.

531voto

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

Le deuxième paramètre permet d'ouvrir une nouvelle fenêtre. N'oubliez pas de lire L'article informatif de Jakob Nielsen :)

11 votes

Mais que se passe-t-il si votre navigateur a bloqué les paramètres sur les popups ? cela ne fonctionnera pas.

0 votes

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

49voto

Ian Oxley Points 5659

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

43voto

Fanis Mahmalat Points 479

Vous pouvez même utiliser

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

Cela l'ouvrira dans le même onglet si la fenêtre pop-up est bloquée.

18voto

rodrigo-silveira Points 2225

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

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

11voto

relief.melone Points 684

Avec jQuery, c'est encore plus facile et cela fonctionne aussi sur Chrome.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X