Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/04/2011, 17h29   #1
Nouveau Membre du Club
 
Femme Kali
Inscription : septembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Nom : Femme Kali
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 130
Points : 33
Points : 33
Par défaut faire un onclick sur un Href.

Bonjour,
j'ai un lien href et quand l'utilisateur veut cliquer dessus : je dois mettre un message :

j'ai fait ceci :
Code :
1
2
3
function showMessage() {
   alert('Veuillez vousxxxx?');
}

et le lien est :
Code :
<a href="'+nodeTree[i].url+'" target="'+nodeTree[i].target+'" onclick="showMessage()">
est-ce correct car cela ne fonctionne pas du tout.
merci d'avance.
prugne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h30   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Citation:
est-ce correct car cela ne fonctionne pas du tout.
comment est construit ta ligne, il semblerait que tu mélanges HTML et javascript!
d'où sortent nodeTree[i].url et nodeTree[i].target
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 22h13   #3
Nouveau Membre du Club
 
Femme Kali
Inscription : septembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Nom : Femme Kali
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 130
Points : 33
Points : 33
Par défaut reponse

ce sont des fonctions dans javascripts.
prugne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 23h02   #4
Membre du Club
 
Avatar de betadev
 
Homme
Développeur Web
Inscription : octobre 2008
Messages : 80
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : Tunisie

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2008
Messages : 80
Points : 56
Points : 56
Essaye de tester cela
Code :
1
2
3
4
5
6
<script>
function showMessage() {
   alert('Veuillez vousxxxx?');
}
document.write('<a href="#" onclick="showMessage()">link</a>') ;
</script>
si ça fonctionne ajoute tes 2 variables une par une et fait un test pour savoir d'ou vient le problème , cad écrit ça et tester :
Code :
1
2
3
4
5
6
<script>
function showMessage() {
   alert('Veuillez vousxxxx?');
}
document.write('<a href="'+nodeTree[i].url+'" onclick="showMessage()">link</a>') ;
</script>
si ça fonctionne , essaye ceci :
Code :
1
2
3
4
5
6
<script>
function showMessage() {
   alert('Veuillez vousxxxx?');
}
document.write('<a href="'+nodeTree[i].url+'" target="'+nodeTree[i].target+'" onclick="showMessage()">link</a>') ;
</script>
et n'oublie pas que dans les 2 derniers cas , il faut que les variables mis dans href et target soient prédéfinis.
betadev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 23h07   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
tu ne peux pas utiliser des données javascript hors d'un contexte javascript.
il te faudrait écrire...
Code :
1
2
3
4
<script type="text/javascript">
var html = '<a href="' +nodeTree[i].url +'" target="' +nodeTree[i].target +'" onclick=\"showMessage()\">'
document.write( html);
</script>
et la cela devrait fonctionner, mais c'est pas grand top :o(

il vaut mieux procéder comme suit en ajout dynamique lorsque le DOM est construit
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html>
<head>
</head>
<body>
<a id="lien_0" href="" target="" onclick="alert(this.href);"></a><br>
<a id="lien_1" href="" target="" onclick="alert(this.href);"></a>
<script type="text/javascript">
// les donnees
var Data = [
  {
    href   : 'page1.html',
    target : '_blank',
    value  : 'le lien #1'
  },
  {
    href   : 'page2.html',
    target : '_blank',
    value  : 'le lien #2'
  }
];
// initialisation
var i, oLien, nb = Data.length;
for( i = 0; i <nb; i++){
  // recuperation lien via son ID
  oLien = document.getElementById('lien_' +i);
  // affectation
  oLien.href      = Data[i].href;
  oLien.target    = Data[i].target;
  oLien.innerHTML = Data[i].value;
}
</script>
</body>
</html>
Le mieux reste de le faire coté serveur en PHP par exemple.

Nota :
les événements dans les balises attendent des actions javascript donc pas de problème de contexte dans ce cas, donc tu pourrais écrire
Code :
<a id="lien_0" href="" target="" onclick="alert(Data[0].href);">
sans problème
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 09h02   #6
Nouveau Membre du Club
 
Femme Kali
Inscription : septembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Nom : Femme Kali
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 130
Points : 33
Points : 33
Par défaut Merci

merci des explications.
Cela fonctionne bien, j'arrive à avoir mon message lorsque je clique sur le lien.
Merci encore
prugne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h18.


 
 
 
 
Partenaires

Hébergement Web