使用element.click()在Javascript中模拟按钮单击

使用element.click()在Javascript中模拟按钮单击,javascript,opera,opera-extension,Javascript,Opera,Opera Extension,我正在尝试为Opera编写一个自动发送特定聊天信息的扩展。(确切地说,是命令。)为此,我想在文本区域中输入消息,模拟单击按钮发送消息,然后阅读我得到的回复 我一直在尝试使用JavaScript的Element.click()函数来模拟单击,但它不起作用。 我的代码是这样的: document.getElementsByClassName("text-area")[0].value = "test"; document.getElementsByClassName("send-chat-butto

我正在尝试为Opera编写一个自动发送特定聊天信息的扩展。(确切地说,是命令。)为此,我想在文本区域中输入消息,模拟单击按钮发送消息,然后阅读我得到的回复

我一直在尝试使用JavaScript的Element.click()函数来模拟单击,但它不起作用。 我的代码是这样的:

document.getElementsByClassName("text-area")[0].value = "test";
document.getElementsByClassName("send-chat-button")[0].click();
textarea会填入我想要的值,但它不会单击按钮。 我在控制台上也没有得到任何输出。我很高兴能得到任何帮助

你好,Kileraptor1


更新:你说得对,按钮没有我想象中的
OnClick
事件。老实说,我不确定它是如何提交消息的。因为我正在为一个我不拥有的插件编写插件,所以我无法编辑源代码或任何东西。

最简单的方法是使用jQuery中的
trigger()
函数:

$(".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,已经有了一个很好的答案。正如我所说,jQuery使这一点变得非常简单。

除非您使用jQuery,否则JavaScript使用
onclick
而不是
click()
@Henry我不想通过按下按钮触发函数,我想用JavaScript模拟按钮点击。当您按enter键进入文本区域时,可能必须使用keypress进行模拟,此时,使用jquery中的.addClass将样式模拟添加到按钮。您只能使用jquery来执行此操作。您是否确实为按钮分配了click事件的处理程序?@Kileraptor1您需要一个附加到元素的事件处理程序才能使用它,请参阅我的答案。