Je suggère pas ajoutant dans l'attribut target. Il a été abandonné pour des raisons d'accessibilité, et je ne l'aime pas lorsque la page décide pour moi comment les balises de mon navigateur s'ouvrent. Bien sûr, vous êtes libre de le faire, si vous le souhaitez. Je vais vous montrer une méthode JavaScript qui Darin mentionné ci-dessus qui vous permet de valider en XHTML 1.0 Strict ou XHTML 1.1:
code HTML:
<!-- Added link titles for better testing purposes -->
<ul id="socialnetwork">
<li><a href="http://www.twitter.com/" class="targetblank">Twitter</a></li>
<li><a href="http://www.flickr.com/" class="targetblank">Flickr</a></li>
<li><a href="http://www.xing.com/" class="targetblank">XING</a></li>
<li><a href="http://www.rss.com/" class="targetblank">RSS</a></li>
</ul>
code JavaScript:
window.onload = function() {
// Code if document.getElementByClassName() doesn't exist
if (document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(className) {
var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
var allElements = document.getElementsByTagName("*");
var results = [];
var element;
for (var i = 0; (element = allElements[i]) != null; i++) {
var elementClass = element.className;
if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
results.push(element);
}
return results;
}
}
var anchorList = document.getElementsByClassName('targetblank');
for (var i in anchorList) {
anchorList[i].target = '_blank';
}
}
Bien sûr, vous pouvez omettre window.onload si vous l'avez déjà inclus ailleurs, mais je recommande de l'utiliser (ou d'utiliser une autre fonction de chargement, telle quede JQuery) afin que le JavaScript se charge lorsque la page se termine le chargement. Maintenant, tout ce que vous devez faire est de donner à chaque lien d'ancrage une classe de "targetblank
", et les liens devraient s'ouvrir dans un nouvel onglet.
D'accord, je dois laisser tomber Strict .. maintenant son heure de transition. – Tomkay
Comment ouvrir un lien dans un nouvel onglet sans l'attribut target, et sans JavaScript, dans ce scénario? – user1886419
S'il vous plaît ne pas essayer d'enlever les bonnes réponses utiles comme ça. Même si vous avez terminé avec SO, ils bénéficient toujours aux autres. – hvd