Changement de "href"

Changement de "href" - HTML/CSS - Programmation

Marsh Posté le 21-11-2005 à 10:44:30    

Salut à tous les programeurs Javascript !
J'ai des pages HTML avec des @ mail à l'intérieur ( mailto ... ).
Je dois modifier le lien en Javascript pour rediriger vers une adresse mail différente. Le pb vient que quand je change :
<a href="mailto:dupont@aaa.bbb">Dupont</a> avec
document.links[0].href="mailto:dupont_new@aaa.bbb";
cela me renvoie également "mailto:dupont_new@aaa.bbb" au lieu de "Dupont" dans la texte de la balise <a>.
Comment ca se fait ? Comment résoudre le pb ? :(  
 
Merci !!
@+

Reply

Marsh Posté le 21-11-2005 à 10:44:30   

Reply

Marsh Posté le 21-11-2005 à 11:05:13    

document.links[0].href <== ca renvoi le href
toi ce que tu veux c'est modifier aussi le innerHTML de la balise
donc document.links[0].innerHTML


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 21-11-2005 à 11:10:59    

gatsusat a écrit :

document.links[0].href <== ca renvoi le href
toi ce que tu veux c'est modifier aussi le innerHTML de la balise
donc document.links[0].innerHTML


 
Au contraire, ce que je veux c'est seulement modifier le href, or il modifie également le InnerHTML tout seul. Et ca je veux pas.
Mais bon ca marche maintenant, je connaissais pas InnerHTML, mais maintenant je récupère le innerHTML au début de procédure et je le réaffecte à la fin, après avoir mis à jour le href.
Merci !!  :hello:  
 
PS : c'est qd meme bizarre ce genre de choses !  :pt1cable:

Reply

Marsh Posté le 21-11-2005 à 11:14:36    

oui très sachant justement que ce sont des propriétés d'élément totalements indépendantes et j'ai déjà maintes fois travaillé sur un Href, et ca n'a jamais modifié le innerHTML, donc faudrait voir ton code au complet ya des choses à corriger je crois, mais aussi ta methode pour recuperer les liens d'un document.
 
maintenant on fait :  
var mesliens = document.getElementsByTagName("A" );
et ensuite tu a un tableau de liens qu'il ne te reste plus qu'à parcourir


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 21-11-2005 à 11:21:48    

gatsusat a écrit :

oui très sachant justement que ce sont des propriétés d'élément totalements indépendantes et j'ai déjà maintes fois travaillé sur un Href, et ca n'a jamais modifié le innerHTML, donc faudrait voir ton code au complet ya des choses à corriger je crois, mais aussi ta methode pour recuperer les liens d'un document.
 
maintenant on fait :  
var mesliens = document.getElementsByTagName("A" );
et ensuite tu a un tableau de liens qu'il ne te reste plus qu'à parcourir


 
Ouai sans doute y a des trucs à modifier, c'est pas moi qui l'ai fait :D
 
Voilà le code  [:a_bon]  
 

Code :
  1. <script language="JavaScript">
  2. for(intCount=0;intCount<document.links.length;intCount++)
  3. {
  4. objLink = document.links[intCount];
  5. strLien = objLink.href;
  6. strInner = objLink.innerHTML;
  7. if (objLink.href.search("javascript" )==-1) {
  8.  strLien = escape(strLien);
  9. //  Les caractères % : # ? = ont été échappés, mais il faut les rétablir
  10.  strLien = strLien.replace(/%25/g, "%" );
  11.  strLien = strLien.replace(/%3a/g, ":" );
  12.  strLien = strLien.replace(/%3A/g, ":" );
  13.  strLien = strLien.replace(/%3F/g, "?" );
  14.  strLien = strLien.replace(/%3D/g, "=" );
  15.  strLien = strLien.replace(/%23/g, "#" );
  16.  strLien = strLien.replace("%EF%A3%AD", "%E8" ); // -> è
  17.  strLien = strLien.replace("%EF%A3%AE", "%E9" ); // -> é
  18.  strLien = strLien.replace("%EF%A3%AF", "%EA" ); // -> ê
  19.  objLink.href = strLien;
  20.  objLink.innerHTML = strInner;
  21. }
  22. }
  23. </script>

Reply

Marsh Posté le 21-11-2005 à 11:49:23    

Chandy a écrit :


Code :
  1. ...
  2.  objLink.href = strLien;
  3.  objLink.innerHTML = strInner;
  4. ...



 
Si tu ne veux pas modifier le innerHTML, pourquoi est-ce que tu le fais ? ;)
 
Et +1 sur la rermaque de Gatsusat sur l'utilisation de document.getElementsByTagName("A" )

Reply

Marsh Posté le 21-11-2005 à 11:56:42    

Bidem a écrit :

Si tu ne veux pas modifier le innerHTML, pourquoi est-ce que tu le fais ? ;)
 
Et +1 sur la rermaque de Gatsusat sur l'utilisation de document.getElementsByTagName("A" )


 
Le code que j'ai proposé est la version corrigée, le code original est le même sans les lignes :

Code :
  1. strInner = objLink.innerHTML ;
  2. objLink.innerHTML = strInner;


 
Et je vais tester le "getElementsByTagName"  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed