2010-11-14 11 views
0

Mon cas de test est @ Gmail, j'essaie de simuler un clic pour ouvrir le premier e-mail avec JavaScript.Comment simuler un clic sur un élément qui entraîne également l'appel d'événements attachés?

En fait, j'ai fait une tentative réussie qui est faite en tirant un événement mousedown. Mais je me demande s'il existe une méthode générique pour générer des clics "organiques" au lieu de perdre du temps à enquêter sur les événements attachés?

Merci.

+1

Quel est le problème avec '$ ("# elementID") cliquez sur()'? –

+3

@ Frédéric - Cela suppose que tous les gestionnaires d'événements sont attachés à un événement click, lorsqu'il y a d'autres événements tels que 'mousedown' et' mouseup' que déclencherait un clic de l'utilisateur. –

+0

@Nick, je vois, merci :) –

Répondre

1

Vous pouvez simplement déclencher les suspects habituels ... mais à part ça, il n'y a pas de bonne façon générique pour simuler un clic natif d'un utilisateur (et une réelle native clic est impossible, par exemple, faire un <a> aller à il href, sans faire la redirection vous-même).

Déclencher les événements pertinents à un click pour quelque chose comme gmail ressemblerait à ceci:.

$(selector).mousedown().mouseup().click(); 
+1

Je ne suis pas d'accord avec vous sur les événements ne peuvent pas faire une ancre suivre son href, parce que je l'ai fait avec document.createEvent. Cependant, l'enchaînement semble être la solution jusqu'à présent. Meh, il est temps de pirater Webkit lol. – Ozgur

+1

@Ozgur - Sans blague, j'aimerais voir un exemple de ce qui fonctionne cross-navigateur. A moins que quelque chose ne change (AFAIK), IE requiert encore 'createEventObject', et même si vous ne faites pas le comportement * native *, par exemple: Ctrl + Click s'ouvre dans une nouvelle fenêtre, etc. C'est pourquoi j'ai souligné * réel * En général, vous simulez ou simulez partiellement un événement natif, mais pas tout le temps. –

+0

Vous avez raison, il n'y a pas de clic natif multi-navigateur, mais Firefox est le seul outsider. Tous les autres navigateurs prennent en charge la simulation d'un événement "click" natif et de la suite de 'href', en obéissant à l'attribut' target', etc. Pour référence: http://stackoverflow.com/questions/1421584/how-can-i-imitation- un-clic-à-un-ancre-tag/1421968 # 1421968 –

Questions connexes