2016-03-30 5 views
0

J'essaye d'écrire une extension pour Opera qui envoie automatiquement des messages de discussion spécifiques. (Commandes, pour être exact.) Pour cela, je veux entrer le message dans la zone de texte, simuler un clic sur un bouton pour envoyer le message et lire la réponse que je reçois.Utilisation de element.click() pour simuler un bouton Cliquez en Javascript

J'ai essayé d'utiliser la fonction Element.click() de JavaScript pour simuler le clic, mais cela ne fonctionne pas. Mon code ressemble à ceci:

document.getElementsByClassName("text-area")[0].value = "test"; 
document.getElementsByClassName("send-chat-button")[0].click(); 

Le textarea est rempli avec la valeur que je veux, mais il ne clique pas sur le bouton. Je ne reçois également aucune sortie sur la console. Je serais heureux de toute aide que je peux obtenir.

Cordialement, Kileraptor1

MISE À JOUR: Vous aviez raison, le bouton n'a pas un événement OnClick comme je pensais qu'il avait. Je ne suis pas vraiment sûr de la façon dont il envoie un message. Depuis que j'écris un plugin pour un website je ne possède pas, je ne peux pas éditer la source ou quoi que ce soit.

+0

Sauf si vous utilisez jQuery, JavaScript utilise 'onclick' pas' click() '. –

+0

@Henry Je ne veux pas déclencher une fonction en appuyant sur le bouton, je veux simuler un clic sur un bouton en utilisant JavaScript. – Kileraptor1

+0

Peut-être que vous devez utiliser la touche pour simuler lorsque vous appuyez sur entrer dans la zone de texte, à ce stade, ajoutez avec .addClass dans jquery les styles simulent au bouton. Vous pouvez le faire uniquement avec jquery. –

Répondre

0

La façon la plus simple serait avec la fonction trigger() dans jQuery:

$(".send-chat-button:first").click(function() 
{ 
    // Whatever actions you want to perform on click 
}); 

$(".send-chat-button:first").trigger("click"); // Executes the click event handler 

trigger(event) exécutera tout des événements déterminés qui sont attachés à un élément à tout moment dans le code.

Si vous voulez utiliser du JavaScript pur, il y a déjà une bonne réponse here. Comme je l'ai dit, jQuery rend cela extrêmement simple.