Javascript - changement auto d'un href

Résolu/Fermé
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
- 20 févr. 2012 à 13:45
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
- 21 févr. 2012 à 09:28
Bonjour à tous !
Voilà, j'ai une page (php) qui inclue une autre page, et je masque certains éléments par le biais du css. bref dans la page que j'inclue, il y a des liens censés être relatifs au site de base
exemple:
<a href="\menu$aaa=444">lien</a>

cependant afin de pouvoir traiter ce lien j'aimerai
a) lors du chargement, ajouter un préfixe
exemple
<a href="traiter\menu$aaa=444">lien</a>

b) lors du clic sur un href, capter le clic et changer le lien à la volé

en espérant une réponse, bne journée à tous !
naga

3 réponses

AssassinTourist
Messages postés
5700
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
23 mars 2022
1 301
20 févr. 2012 à 13:47
Bonjour,
Je ne comprends pas trop pourquoi vous ne voulez pas mettre le lien directement dans le href, mais sinon, il faut utiliser du javascript.
0
Sombresonge
Messages postés
106
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
19 avril 2015
9
20 févr. 2012 à 14:24
Pour modifier le lien dynamiquement, tu peux utiliser le javascript et la propriété href d'un élément
getElementById('id_balise_a').href = "nouveau_lien";


Mais sinon, comme AssassinTourist, je ne vois pas pourquoi tu ne mets pas directement le lien directement dans ta balise HTML
0
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
228
20 févr. 2012 à 14:32
salut ! merci, j'ai commencé à faire le script (juste galère vu que je connais pas le javascript mais bon)
le soucis est que j'importe une page d'un autre site, et donc je n'ai pas accès au contenu tant qu'il est pas chargé. et afin de ne pas avoir de lien cassés, je veux modifier le contenu du href pour rediriger vers une page appropriée.
0
AssassinTourist
Messages postés
5700
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
23 mars 2022
1 301
20 févr. 2012 à 14:37
Tu peux savoir les id des éléments quand même ?
0
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
228
20 févr. 2012 à 14:38
ah et oui, les éléments sont toujours construits de la même manière, enfin je voulais récupérer tous les "<a></a>" d'une div connue.
merci de ton aide !
bne journée
0
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
228
20 févr. 2012 à 14:37
ok j'ai réussi. voilà donc le code :
		var chaine;
		var refvideo="";
		var posbeg=0;
		var posend=0;
		var expr;
    	        var liens = page.getElementsByTagName("a");
  		expr = new RegExp("/watch", "i");
		for(var i=0; i<liens.length; i++){
			refvideo="";
			posbeg=0;
			posend=0;
		 	chaine = liens.item(i).href;
			posbeg=chaine.indexOf("v=",1);
			posbeg+=2;
			posend=chaine.indexOf("&",posbeg);
  		 	for(var j=posbeg;j<posend;j++)
				refvideo=refvideo+chaine.charAt(j)
		 	liens.item(i).href="/index.php?page=video&ref="+refvideo;
		}

à rajouter après l'inclusion afin de charger après le chargement de la page inclue
pour faire simple, pour chaque lien de base, je récupère simplement un identifiant, qui se trouve n'importe où dans le lien en get. Connaissant l'élément recherché ("v="), je recherche sa position puis la prochaine instance "?" (séparateur des éléments get).
ensuite je récupère ce paramètre grâce à une chaine et les positions lues au préalable et je modifie le contenu du href.
voilà, merci quand même !

bonne journée,
naga
0
AssassinTourist
Messages postés
5700
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
23 mars 2022
1 301
20 févr. 2012 à 14:43
Sujet résolu alors ? =)
0
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
228
20 févr. 2012 à 15:07
ouaip, j'avais oublié ;)
0
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
20 févr. 2012 à 16:25
au lieu d'utiliser ça for(var j=posbeg;j<posend;j++)
refvideo=refvideo+chaine.charAt(j) , t'as du utiliser chaine.substr(posbeg, posend-posbeg);
0
nagashima
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
228
21 févr. 2012 à 09:28
ok merci ! ca sera plus facile à reprendre ensuite ^^ (j'ai aucunes notions en javascript,, donc même si le projet est résolu, je prend tous les conseils ;] )
bne journée !
0