94 votes

Comment ouvrir un lien dans une nouvelle fenêtre ?

J'ai un click handler pour un lien spécifique, à l'intérieur duquel je veux faire quelque chose de similaire à ce qui suit :

window.location = url

J'ai besoin d'ouvrir l'url dans une nouvelle fenêtre, comment faire ?

208voto

Sarfraz Points 168484

Vous pouvez aimer :

window.open('url', 'window name', 'window settings')

jQuery :

$('a#link_id').click(function(){
  window.open('url', 'window name', 'window settings');
  return false;
});

Vous pouvez également définir le target a _blank en fait.

0 votes

Mais ce code jquery ne permet pas de naviguer automatiquement vers la cible

26 votes

_blank est la cible par défaut, l'utilisation de window.open(url) devrait donc suffire.

0 votes

Je ne suis pas sûr que cela vous aidera et ce n'est pas exactement le même problème, mais je cherchais la même solution. télécharger un fichier (pas à partir d'un lien mais d'un bouton) et sur Chrome la fenêtre ne s'ouvrait pas et il n'y avait pas de téléchargement jusqu'à ce que je change simplement window.location = 'url' ce qui ne change pas l'emplacement mais télécharge le fichier...

34voto

chadwackerman Points 271

Voici comment forcer la cible à l'intérieur d'un gestionnaire de clics :

$('a#link_id').click(function() {
    $(this).attr('target', '_blank');
});

5 votes

Il n'est pas nécessaire d'utiliser le sélecteur jQuery dans le gestionnaire de clics. $(this).attr('target', '_blank'); pourrait être remplacée par this.target = "_blank"; De même, si les liens d'ancrage de la page peuvent être modifiés de manière à avoir des rel="external" vous pouvez alors créer un gestionnaire de clic global pour la page avec le sélecteur jQuery a[rel="external"] plutôt que d'avoir un gestionnaire de clic par lien sélectionné avec a#link_id

16voto

Amr ElGarhy Points 12696

5 votes

A vos souhaits ! N'utilisez pas ou ne créez pas de lien vers w3schools, il n'est PAS associé au W3C. Utilisez plutôt MDN : developer.mozilla.org/en-US/docs/Web/API/Window.open

5 votes

W3schools est bon (ignorez les "quelques" trolls du w3c)... continuera à être une source faisant autorité... même le w3c le soutient à nouveau ;-)

5voto

Usha Points 51

Vous pouvez également utiliser la méthode jquery prop().

$(function(){
  $('yourselector').prop('target', '_blank');
});

0voto

Qu'est-ce qui ne va pas avec <a href="myurl.html" target="_blank">My Link</a> ? Aucun Javascript n'est nécessaire...

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