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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Détecter une sous-chaîne dans un attribut HTML

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

par Peutch » 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