Javascript - changement auto d'un href

Résolu/Fermé
Utilisateur anonyme - 20 févr. 2012 à 13:45
 Utilisateur anonyme - 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
A voir également:

3 réponses

AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
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
Utilisateur anonyme
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 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
20 févr. 2012 à 14:37
Tu peux savoir les id des éléments quand même ?
0
Utilisateur anonyme
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
Utilisateur anonyme
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 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
20 févr. 2012 à 14:43
Sujet résolu alors ? =)
0
Utilisateur anonyme
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
Utilisateur anonyme
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