Comment puis-je par programme, cliquez sur un élément en JavaScript?
Dans IE, je peux juste appeler élément.cliquez sur() de JavaScript - comment puis-je accomplir la même tâche dans Firefox? Idéalement, j'aimerais avoir un peu de JavaScript qui fonctionnerait tout aussi bien de croix-navigateur, mais si nécessaire, je vais avoir différentes par-navigateur JavaScript pour cela.
- Cette question a aussi été répondu here.
- Veuillez accepter ma réponse comme une solution, comme plusieurs utilisateurs demande trop.
Vous devez vous connecter pour publier un commentaire.
La
document.createEvent
de la documentation dit que "La createEvent méthode est obsolète. Utilisation événement constructeurs à la place."Si vous devez utiliser cette méthode plutôt:
et le feu sur un élément comme ceci:
comme le montre ici.
dispatchEvent(clickEvent);
pour moi a été:var element = document.getElementById("id-tag");
Pour firefox liens semblent être "spécial". La seule façon que j'ai été en mesure d'obtenir ce travail a été d'utiliser la createEvent décrit ici sur MDN et d'appeler la initMouseEvent fonction. Même cela ne fonctionne pas complètement, j'ai dû informer manuellement le navigateur pour ouvrir un lien...
À l'aide de jQuery vous pouvez faire exactement la même chose, par exemple:
Qui "cliquez sur" tous les points de contrôle sur la page.
<a onclick="someFunction()>Click me</a>
mais pas lors de l'utilisation de ce format<a href="javascript:someFunction()">Click me</a>
élément.cliquez sur() est une méthode standard décrite par le DOM du W3C spécification. Mozilla Gecko/Firefox suit la norme et ne permet que cette méthode soit appelée sur les éléments d'ENTRÉE.
Êtes-vous essayer de suivre le lien ou déclencher la onclick? Vous pouvez déclencher un onclick avec quelque chose comme ceci:
Voici un navigateur croix de travail fonction (utilisable par d'autres que les gestionnaires de clic de trop):
el[etype]();
sur la ligne 3 pour obtenir IE feu à la maternelle de l'événement (j'ai été le tester avec un gestionnaire de clic - voir jsfiddle.net/Pc8qE)J'ai utilisé KooiInc de la fonction ci-dessus, mais j'ai dû utiliser deux différents types d'entrées, un "bouton" pour IE et un "soumettre" pour FireFox. Je ne suis pas exactement pourquoi, mais il fonctionne.
//HTML
//en JavaScript
J'ai recherche et essayé de nombreuses suggestions, mais c'est ce qui a fini de travailler. Si j'avais plus de temps j'aurais aimé étudier pourquoi les soumettre fonctionne avec FF et un bouton avec IE mais que serait un luxe en ce moment donc au problème suivant.