2016-03-30 12 views
0

Я пытаюсь написать расширение для Opera, которое автоматически отправляет определенные сообщения чата. (В частности, для команд.) Для этого я хочу ввести сообщение в текстовое поле, имитировать щелчок на кнопке, чтобы отправить сообщение и прочитать полученный ответ.Использование element.click() для имитации кнопки Нажмите в Javascript

Я пытаюсь использовать функцию Element.click() JavaScript для имитации щелчка, но он не работает. Мой код выглядит примерно так:

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

текстовое поле заполняется с использованием значения Я хочу, но не нажимает на кнопку. Я также не получаю никакого вывода на консоли. Я был бы рад любой помощи, которую я могу получить.

С уважением, Kileraptor1

UPDATE: Вы были правы, кнопка не имеет OnClick событие, как я думал, что это было. Я честно не знаю, как он отправляет сообщение. Поскольку я пишу плагин для website, я не владею, я не могу редактировать источник или что-то еще.

+0

Если вы используете jQuery, JavaScript использует 'onclick' не' click() '. –

+0

@Henry Я не хочу запускать функцию, нажимая кнопку, я хочу имитировать нажатие кнопки с помощью JavaScript. – Kileraptor1

+0

Возможно, вам нужно использовать keypress для симуляции, когда вы нажимаете enter в текстовое поле, в этот момент добавьте с .addClass в jquery стили, имитирующие кнопку. Вы можете сделать это только с помощью jquery. –

ответ

0

Проще всего было бы с trigger() функции в 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) выполнит любые заданные события, которые прикреплены к элементу в любой точке кода.

Если вы хотите использовать чистый JavaScript, то уже есть хороший ответ here. Как я уже сказал, jQuery делает это чрезвычайно простым.