Javascript - changement auto d'un href [Résolu/Fermé]

Signaler
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
-
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
-
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

Messages postés
5694
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
14 octobre 2020
1 029
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.
Messages postés
112
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
19 avril 2015
10
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
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
194
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.
Messages postés
5694
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
14 octobre 2020
1 029
Tu peux savoir les id des éléments quand même ?
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
194
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
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
194
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
Messages postés
5694
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
14 octobre 2020
1 029
Sujet résolu alors ? =)
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
194
ouaip, j'avais oublié ;)
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
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);
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
194
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 !