Détecter une sous-chaîne dans un attribut HTML

Petit nouveau ! | 1 Messages

28 mars 2005, 19:33

Bonjour à tous !

Voilà mon problème. Mon site est entièrement en XHTML Strict, donc j'ai enlevé tous les target="_blank". Comme parfois, je garde la nécessité d'ouvrir certains liens dans une fenêtre différente (bien que je n'aime pas trop), je me suis mis à utiliser un script :
SI l'attribut "rel" du lien est "external"
ALORS faire comme si target="_blank"

Mon script marchait nickel. Seulement maintenant, j'ai besoin de mettre d'autres choses dans l'attribut rel. Par exemple avoir rel="external friend met" (certains reconnaîtront XFN).
Le problème c'est que dans ce cas, la condition IF de mon script doit être modifiée et devenir :
SI l'attribut "rel" contient "external" (et non plus "est") ALORS etc.

Le problème c'est que je suis très nul en Javascript. Pourriez m'aider à comprendre pourquoi mon script ne marche pas ?

Code : Tout sélectionner

function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; var relattrib = anchor.getAttribute("rel") ; var found = relattrib.indexOf("external") ; if (anchor.getAttribute("href") && (found != -1) ) { anchor.target = "_blank"; } } } window.onload = externalLinks;
Ce code marchait très bien quand la deuxième condition du if était

Code : Tout sélectionner

relattrib == "external"
mais plus maintenant ... Plus précisément, un lien avec rel="external" ne s'ouvre plus dans une autre fenêtre ; un lien avec rel="external friend" ne s'ouvre pas non plus dans une autre fenêtre. Est-ce que j'utilise mal index.Of ?

Est-ce que vous auriez la gentillesse de m'expliquer ? Merci d'avance !

Peutch