Un évènnement clic JAVASCRIPT

Fermé
tatoutati - 18 mars 2008 à 03:36
Nicolas M. Messages postés 48 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 novembre 2010 - 13 mars 2010 à 17:04
Bonjour,
salut.
Est ce que vous pouvez m'aider de resoudre ce probleme:
je veut faire une fonction qui fait un évennement de clic sur un lien. vraiment j'ais cassé trop la tête mais je n'arrive pas à ce que je cherche.
j'ais réussi de faire un évènnnement de click sur un checkbox et voila le code:

/////// voila le code javascrip

function simulateClick() {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cb = document.getElementById("checkbox");
cb.dispatchEvent(evt);
if(canceled) {
// A handler called preventDefault
alert("canceled");
} else {
// None of the handlers called preventDefault
alert("not canceled");
}
////// et voila le body

<body>
<input type="checkbox" id="checkbox"/><label for="checkbox">Checkbox<br /> </label>
<p>
<input type="button" onclick="simulateClick();" value="Simulate click"/>
</p>
</body>

mais sur un lien je n'arrive pas, aidez moi pleeease!
le code est très important pour moi!!!

Rque: je veut un évènnement de clic, pas une ouverture d'une nouvelle fenêtre qui prend le href de lien ou que la meme fenetre prend le href de lien avec document.location.href.
vous pouvez faire un seul lien dans la page et tester la resultat avec un bouton dans la même page qui appelle la fonction javascript.

merci d'avance pour toute aide.
A voir également:

10 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
18 mars 2008 à 14:07
salut,

si j'ai bien compris tu veux appeler ta fonction sur 'onclick' mais que le 'href' ne soit pas pris en compte.

pour cela, soit tu retournes 'false' avec ta fonction, soit tu ajoutes 'return false;' à l'évènement pour que l'évènement ne se propage pas.
<a href="cible.html" onclick="simulateClick();return false;">blabla</a>
2
tatoutati Messages postés 4 Date d'inscription vendredi 8 février 2008 Statut Membre Dernière intervention 19 mars 2008
19 mars 2008 à 00:20
désolé mais ce n'est pas ce que je cherche, je veut que lorsque je clique sur le bouton "Simulate click" le lien sera cliqué automatiquement comme je fait le clique sur ce lien.
je pense que c'est clair, ce n'est qu'un évènnement de clic.
0
tatoutati Messages postés 4 Date d'inscription vendredi 8 février 2008 Statut Membre Dernière intervention 19 mars 2008
19 mars 2008 à 00:54
désolé si le code n'est pas trop claire, ce que je veut plus précisamment est un simulateur de click sur un lien, dans l'exemple que j'ais donné la simulation de click se fait sur le checkbox (quand je clique sur le bouton "simuler click" le checkbox est cliqué automatiquement comme je le clique moi même), je veut que la simulation de click se fait sur un lien,quand je clique sur le bouton le lien est cliqué automatiquement, et voila l'explication de la fonction qui est testé et sa marche:

function simulateClick() {
var evt = document.createEvent("MouseEvents"); // créer un évennement souris
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); // intiailser l'évennement déja crée par un click
var cb = document.getElementById("checkbox"); // pointer sur l'élement qui a l'id "checkbox"
cb.dispatchEvent(evt); // envoyer l'évennement vers l'élement
}

je pense que c'est clair, merci en tout cas pour toute répense.
0
Bonjour...
Alors quelle version de script fonctionne sur tout les navigateurs ?

Moi aussi j'en ai besoin : je cherche à déclencher une lightbox ("du type merci d'avoir envoyer ce formulaire...") après validation d'un formulaire en jsp.
Je m'explique : les lightbox ne se déclenchant qu'à partir d'un lien (l'idéal aurait été le submit du formulaire mais il faut bien l'envoyer ce formulaire !!), je voudrait simuler un clic sur un lien quelconque de la page lorsque le formulaire est validé.

Ca en inspire quelques un ?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
5 sept. 2008 à 15:41
salut,

donc toi tu veux poster le <form>, attendre une réponse du serveur (qui valide ou pas) puis afficher une pseudo boite de dialogue.

si c'est ça il faut que tu cherche du côté de l'objet XMLHTTPRequest(), il est utilisé en Javascript (et on appelle Ajax les techniques qui y sont associées).

ça te permettrai d'envoyer les données, attendre la réponse et agir en fonction de la réponse sans avoir à recharger la page.
0
Zestyr Messages postés 466 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 17 octobre 2011 52
18 déc. 2009 à 18:49
Pour ma part, pour ne pas me perdre dans les "name" et tout ça; je donne toujours un "id" aux éléments HTML.


Name != TagName

Name = nom de l'élément donné par un name= :
<div name=Name></div>

TagName = nom de la balise, dans un code Xhtml valide ça peut etre : div, p, span, h1 ...

Les Tag Name sont très utiles pour faire un script universel (fonctionnel) !

Cordialement Zestyr
0
malagasy_ando
21 déc. 2009 à 06:41
Slt,
Ok ok !
Ce que je voulais dire c'est que même avec un TagName, il risque d'avoir des problèmes futurs de maintenance du code. Car si par exemple, tu possèdes au début trois éléments du tag <div>, et que tu veux obtenir le premier élt div, tu fais getElementsByTagName("div")[0]. Or si plus tard, d'autres divs s'ajoutent dans le code précédent, tu devrais changer le "0" en un autre chiffre de valeur supérieure ... Par contre avec un getElementById("unId"), tu ne changes rien et tu ne te soucies d'aucun code d'auparavant.

Mais bon, c'est une question d'habitude et de préférence !

ando.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
19 mars 2008 à 08:45
salut,

mais à quoi ça te sert de simuler un clic ?
-1
Qu'est ce que ça peut te faire...Si tu as la réponse tu la donnes, sinon, tu vas te coucher et tu ne viens pas polluer le forum !

Je suis moi aussi intéresse par une fonction simulant un clic sur une image (mais je ne te dis pas pourquoi, je n'instruis pas les débiles).
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > ura
23 avril 2008 à 23:58
salut,

en sachant pourquoi on peut plus facilement trouver comment.

je te laisse un peu de temps pour y réfléchir un peu, tu pourras répondre plus tard.
0
ano123 > ura
1 juin 2008 à 06:49
je sais tres bien pourquoi c'est, enfin je m'en doute
mais c'est pas la peine de parler comme ca aux gens....
tu sais , on est pas la police
c'est pour faire un bot
t'inquiète pas sur le net c vachement connu
on ne juge pas ici , on aide!
0
En tout cas merci pour ton script il m'a bien aidé pour la simulation du click mais parcontre il ne marche pas sous IE
-1
EyeOfPhoenix
24 juin 2008 à 02:34
Hello de 'lut

sur Internet Explorer il faut utiliser la méthode click() sur ton objet DOM

exemple : node.click() ou document.getElementById( 'idNode' ).click();


++
0
Zestyr Messages postés 466 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 17 octobre 2011 52
17 août 2009 à 13:51
Slt la methodes click(); marche sur FF et IE, juste sur FF on peut pas l'utiliser avec les name.
il faut faire ça:

<body>
<a href="lien.html"></a>
<script>
document.getElementsByTagName("a")[0].click();
</script>
</body>


Tatoutati je connais pas les méthodes que tu as utiliser pour ta fonction, peux tu me les expliquer stp?

Ps: je cherche moi aussi a simuler un click a une coordonée et ordonée, merci de vos reponses

-1
eh non ça ne fonctionne pas ton truc sous ff :

document.getElementsByTagName("a")[0].click is not a function
0
malagasy_ando
18 déc. 2009 à 13:55
Salut,
La méthode click() d'un objet devrait toujours marcher sur les objets Html cliquable : bouton, lien, ...
Aurais-tu omis les deux parenthèses après click ?
Pour ma part, pour ne pas me perdre dans les "name" et tout ça; je donne toujours un "id" aux éléments HTML. Comme ça, c'est plus facile d'obtenir l'objet et d'en faire ce que l'on veut, sans se soucier du fait que l'objet se trouve dans un form, dans un autre div, peu importe où il se trouve car le getElementById permet toujours de l'obtenir !

Dans ton cas par exemple, il est plus sûr d'écrire :

<a href="#" id="lnkExemple">le lien</a>
<script language="javascript">
function simulateClick() {
document.getElementById("lnkExemple").click();
}
</script>

ando.
-1
Zestyr Messages postés 466 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 17 octobre 2011 52
21 déc. 2009 à 20:40
Salut, en usant des Ids on ne peut pas modifié des groupes d'éléments !
-1
Nicolas M. Messages postés 48 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 novembre 2010 113
13 mars 2010 à 17:04
Avec un className (attribut class de l'élément), on peut ;-)
-1