Onclick différents liens avec 1 javascript

Fermé
vitaly - 8 mars 2012 à 09:13
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 9 mars 2012 à 00:32
Bonjour,

Sur une page web, j'ai un lien avec le paramètre onclick qui me permet d'appeler une fonction puis rediriger l'internaute vers une URL précise en cas de succès. Voici le code :

<script type="text/javascript">

call.init({

callback: function(success){ 

if (success) { 

document.location.replace("http://www.aaa.com");

}

else { 

document.location.replace("http://www.bbb.com");

} 

}}); 

</script>

<a href="#" onclick="call.show();">LIEN</a>


Jusqu'ici tout fonctionne comme je le souhaite : lorsque l'internaute clique sur LIEN, il est redirigé vers http://www.aaa.com.

Le problème c'est lorsque je souhaite faire la même chose mais avec plusieurs liens présents sur la même page :
Lorsqu'on clique sur LIEN1 : cela renvoie sur http://www.aaa.com
Lorsqu'on clique sur LIEN2 : cela renvoie sur http://www.zzz.com
Lorsqu'on clique sur LIEN3 : cela renvoie sur http://www.ooo.com
...

En fait, il s'agit de dupliquer le javascript ou de différencier la fonction document.location.replace selon le lien sur lequel l'internaute clique.

J'ai entendu parler d'une solution avec jquery mais je ne vois pas du tout comment faire.

Est-ce que vous auriez une solution ?

Merci !

3 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
8 mars 2012 à 10:57
bonjour,

le plus simple me parait être :

function callshow(failUrl) {
	
	/*---test---*/
	var success = (Math.round(Math.random()))? true : false;
	/*----------*/
	
	if(success) return true;
	document.location = failUrl;
	return false;
}


<a href="http://urlsuccess.fr" onclick="return callshow('http://urlfail.fr');">Lien</a>


par contre si on demande d'ouvrir le liens sur une autre page ça ne passe pas par le javascript.
1
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
9 mars 2012 à 00:05
Bonjour et merci pour la réponse.

En fait mon problème est de différencier deux codes javascripts identiques sur une même page. Comme je suis débutant, j'ai essayé quelque chose du style :

<script type="text/javascript" name="LIEN1">

...

if (success) {

document.location.replace("https://www.aaa.com/International/");

}

else {

document.location.replace("https://www.bbb.org/");

}

...

</script>

<a href="#" onclick="call.show();">LIEN1</a>

--------------------------------------------------------------------

<script type="text/javascript" name="LIEN2">

...

if (success) {

document.location.replace("http://www.pfoa.com/");

}

else {

document.location.replace("https://www.zzz.com/");

}

...

</script>

<a href="#" onclick="call.show();">LIEN2</a>

Je pense que la solution réside à différentier deux funtions javascripts identiques qui donnent un résultat différent selon si l'on clique sur LIEN1 ou sur LIEN2

Merci !
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
9 mars 2012 à 00:32
que contient ta variable success ?
elle sort de où ?
qu'est ce qu'elle test ?

si je peux te donner un conseil c'est de minimiser au maximum les script js dans tes pages. et de minimiser les procédure hors fonctions ou objet. les seul code que tu peux mettre dans des balises script dans le html sont des appel d'objet ou de fonction.

ça limite un bon nombre de problèmes de répétitions et de conflits.

il faut "importer" des fichiers js, dans lesquels tu écris tes fonctions, par la balise script de cette manière dans le head de ta page à la manière d'un fichier css :
<head>
<title>Titre de la page</title>
<script type="text/javascript" src="/js/script.php"></script>
</head>

ce sera plus pratique.

ensuite les arguments de ta fonction servent a entrer les valeurs qui changent suivant ce qu'elle doit faire. je ne sais pas si je suis clair, je suis un peu fatigué...
0