Bonjour,
Je rencontre actuellement un problème assez curieux avec mon site.
Afin d'ouvrir les liens externes dans un nouvel onglet ou nouvelle fenêtre du navigateur, et dans le soucis de faire un code non obstrusif, je fais comme ceci :
J'utilise donc la bibliothèque Prototype, mais le problème n'est pas là. En effet, par exemple sur la page suivante, il y a plusieurs liens externes, tous avec la classe "external".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function ouvrirLien(event) { Event.stop(event); window.open(Event.element(event).href); return false; } function modifierLiens() { var lien = document.getElementsByClassName('external'); var length = lien.length; for(var i = 0; i < length; i++) { Event.observe(lien[i], 'click', ouvrirLien); } } Event.observe(window, 'load', modifierLiens, false);
Cependant, seuls quelque uns fonctionnent. En effet, si vous cliquez sur le lien 'SEO (Search Engine Optimization)' au début de la page, si vous avez activé Javascript, une nouvelle fenêtre devrait s'ouvrir.
Mais si vous cliquez sur 'Introduction à la SEO (optimisation de pages Web)' plus bas, le lien est ouvert dans l'onglet actuel.
Pourtant, si vous regardez la source html, ce lien a aussi la classe "external" !
L'évenement est bien ajouté, puisque si je fais :
dans la fonction modifierLiens, il m'affiche bien le lien concerné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part alert(lien[i].href);
Avez-vous une idée ?
Merci de votre aide
Partager