Appel d'une fonction javascript dans un lien

Signaler
Messages postés
32
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2008
-
Messages postés
9
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
2 août 2011
-
Bonjour,

je voudrais créer un lien qui fait appel à une fonction javascript...
J'ai vu que normalement, la syntaxe est la suivante : [javascript:MaFonction(); Lien]
Avec bien sûr, la fonction déclarée entre des balises <script Language="javascript"></script> le tout entre les balises <head></head>.

Mais lorsque je clique sur ce lien, une page s'ouvre avec l'url "javascript:MaFonction();" et n'appelle pas du tout MaFontion().
Savez vous d'où peut venir ce problème?

Merci pour vos réponse.
Cordialement,
Sebicool

15 réponses

Messages postés
142
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
29 août 2009
1
Salut,

[# ...]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
bonjour,

onclick j'aime pas trop, href est là pour ça.
( mais chacun ses goûts et la caravanne passe )

[javascript:void(maFonction()); lien]

sans le void(), ou avec onclick, après l'exécution de la fonction, les navigateurs exécutent
le href... donc dans notre cas, recharge la page.
donc utiliser void ou faire un return false;

CordialementBul[mon Site][M'écrire], <!--
Messages postés
142
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
29 août 2009
1
Exact j'y avais pas pensé...
Messages postés
32
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2008

Bonjour,

Tout d'abord, merci pour vos réponses.

J'ai essayé vos deux méthodes et malheureusement, aucune ne marche convenablement... Je m'explique:
- avec le void, ca m'ouvre une page avec l'url "javascript:void(maFonction());" (autrement dit pas de changement)
- avec le onclick, ca execute bien la fonction mais ca m'ouvre aussi une nouvelle page avec l'url de la page sur laquelle j'étais et un # à la fin

Y aurait-il quelque chose que j'ai mal fait?

Cordialement,
Sebicool
Messages postés
32
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2008

Sinon, j'ai pensé à une autre solution:
ne pas faire de lien avec les balises (comme ca pas de problème avec href) mais faire
un

  et lui donner l'apparence d'un lien (couleur bleu, souligné, et la main quand la souris passe dessus...)

Le problème est que je ne sais pas faire le changement d'apparence de la souris de flèche basique en main.
Quelqu'un sait?

Merci.
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Je suis d'accord avec Bultez, l'utilisation d'un evenement onclick sur un lien n'est pas recommandé (sauf dans certains cas).

Question bête : as tu activé Javascript ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
à part la remarque judicieuse de XTremDuke... pas de raisons !

[javascript:void(alert('ok')); lien]

Cordialement        Bul     [mon Site]  [M'écrire], <!--
Messages postés
32
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2008

oui, javascript est bien activé...
Messages postés
32
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2008

J'ai fait un test en mettant un alert tout con a la place de l'appel de ma fonction [javascript:void(alert('coucou')); lien] comme Bultez l'a dit, et le résultat est le suivant :
 - l'alert est bien appelé (j'ai la popup qui s'ouvre)
 - mais j'ai aussi une page avec l'url "javascript:void(alert('coucou'));" qui s'ouvre!

Une idée?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
euh...    avec uniquement cette balise ? sans rien d'autre dans la page ?
oui : comprend pas... aucun navigateur ne réagit comme ça ( IE, FF, Opera, K-Meleon, Safari )
et ce, en faisant un copié/collé de ce que tu nous a mis...
au cas où un ch'tiot truc m'échapperait  !
Cordialement     Bul  [mon Site] [M'écrire], <!--
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Je penses que tu dois avoir une erreur JS quelque part. As-tu débugué ta page ? Il y a-t-il des erreurs signalées ?
Si non, utiliserais-tu un script du genre Lightbox et compagnie ? C'est scripts ajoutent des événements sur les ancres en générale, ça pourrait être une piste.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
XTremDuke++
l'erreur est, probablement, ( au moins provoquée ) "ailleurs"
Cordialement     Bul  [mon Site] [M'écrire], <!--
Messages postés
142
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
29 août 2009
1
Euh pas pour moi...ça marche très bien
Montre ton code ça pourrait aider...
Messages postés
2
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
12 novembre 2008

Normalement tu fais :
mon lien
Cela marche tres bien
Messages postés
9
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
2 août 2011

un
texte

marche très bien pourquoi metre un lien quand il n'y en as pas ?