web-dev-qa-db-fra.com

HTML: comment forcer les liens à s'ouvrir dans un nouvel onglet, pas dans une nouvelle fenêtre

j'utilise target="_blank" pour ouvrir les liens dans un nouvel onglet ... mais dans IE cela ouvre une nouvelle fenêtre qui est tout à fait logique car c'est ce que _blank est censé faire et je ne sais pas comment target="_blank" se comporte dans les autres navigateurs ... y a-t-il quelque chose à forcer pour ouvrir les liens dans un nouvel onglet ... si le navigateur prend en charge les onglets ... sinon créer une nouvelle fenêtre

75
Moon

Il n’existe aucun moyen de le faire en tant qu’auteur du code HTML rendu par un navigateur. Du moins pas encore que je sache. Cela dépend du navigateur et de ses paramètres/préférences définis par les utilisateurs eux-mêmes.

En outre, vous ne devriez pas imposer cela à aucun utilisateur. Un navigateur est la propriété de l'utilisateur. Si un utilisateur souhaite ouvrir tous les liens dans des onglets ou dans de nouvelles fenêtres, laissez-le faire.

C'est bien que nous ne puissions pas faire certaines choses. target=_blank est encore maltraité et des popups ont été faits à mort.

76
Moin Zaman

Depuis que je suis tombé dans cette vieille question et que j’ai trouvé que c’était maintenant possible (peut-être que cette option css n’était pas disponible à ce moment-là), je veux simplement ajouter une mise à jour sur la façon dont cela peut être fait:

<a href="[yourlink]" target="_blank" style="target-new: tab;">Google</a>

Voici les options pour le style target-new:

target-new: window | tab | none 

N'a pas testé l'option none, il utilise peut-être le paramètre de navigateur par défaut.

Je l'ai confirmé pour Firefox et IE7-9.

41
Martin

Non, il n'y en a pas.

9
Quentin

J'espère que cela t'aidera 

window.open (url, '_ newtab');

7
Nasruddin
a {
    target-name: new;
    target-new: tab;
}

La propriété target-new spécifie si les nouveaux liens de destination doivent s'ouvrir dans une nouvelle fenêtre ou dans un nouvel onglet d'une fenêtre existante.

Remarque: La propriété target-new ne fonctionne que si la propriété target-name crée un nouvel onglet ou une nouvelle fenêtre.

1
user3242943
onclick="window.open(this.href,'_blank');return false;"
1
ericmotil

Je n'ai pas essayé cela, mais je pense que cela fonctionne dans tous les navigateurs:

target="_parent"

1
Tiago

La manière dont le navigateur gère les nouvelles fenêtres par rapport aux nouveaux onglets est définie dans les options du navigateur et ne peut être modifiée que par l'utilisateur.

1
Andrew W.

Le simple fait d'utiliser "target = _blank" respectera les préférences de l'utilisateur/navigateur, qu'il s'agisse d'utiliser un onglet ou une nouvelle fenêtre, ce qui, dans la plupart des cas, consiste à "faire ce qu'il faut".

Si vous spécifiez les dimensions de la nouvelle fenêtre, certains navigateurs l'utiliseront comme indicateur d'une certaine taille, auquel cas une nouvelle fenêtre sera toujours utilisée. Exemple de code de débordement de pileDépassement de pile

0
Will Budreau

Vous pouvez modifier la façon dont Safari ouvre une nouvelle page dans Safari> Préférences> Onglets> "Ouvrir des pages dans des onglets au lieu de fenêtres"> "Automatiquement".

0
dev_doctor

Vous pouvez configurer IE pour ouvrir les liens dans un nouvel onglet, allez simplement dans le menu des paramètres.

0
Lucas Matos

C'est possible!

Cela semble remplacer les paramètres du navigateur. J'espère que ça marche pour toi.

<script type="text/javascript">
// Popup window code
function newPopup(url) {
    popupWindow = window.open(url,'popUpWindow1','height=600,width=600,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>

<body>
  <a href="JavaScript:newPopup('http://stimsonstopmotion.wordpress.com');">Try me</a>
</body>
0
Richard Stimson

Dans Internet Explorer, cliquez sur Outils -> Options Internet. Cliquez sur l'onglet Général -> Onglets -> Paramètres. Choisissez "Quand un pop-up est rencontré" -> Toujours ouvrir pop-up dans un nouvel onglet. Cliquez sur OK.

0
Santhosh