使用本机JavaScript触发jQuery实时事件

使用本机JavaScript触发jQuery实时事件,javascript,jquery,events,google-chrome-extension,Javascript,Jquery,Events,Google Chrome Extension,我有一个页面上的事件,我需要从Chrome扩展启动。我没有权限修改页面的JavaScript $(selector).live("click", fn); 我需要在我的Chrome扩展中使用本机JS触发此操作,如下所示: selectorElement.click(); //doesn't work 当然,由于正在使用live函数,上述功能将不起作用。我怎么能触发它呢 谢谢 你试过了吗 当然,trigger()应该用于jQuery对象(因此,$(选择器)) .你试过了吗 当然,trigger

我有一个页面上的事件,我需要从Chrome扩展启动。我没有权限修改页面的JavaScript

$(selector).live("click", fn);
我需要在我的Chrome扩展中使用本机JS触发此操作,如下所示:

selectorElement.click(); //doesn't work
当然,由于正在使用
live
函数,上述功能将不起作用。我怎么能触发它呢

谢谢

你试过了吗

当然,
trigger()
应该用于jQuery对象(因此,
$(选择器)
) .

你试过了吗

当然,
trigger()
应该用于jQuery对象(因此,
$(选择器)

.

如果没有jQuery,可以使用以下命令触发DOM事件:


此代码在与选择器匹配的第一个元素上激发,但是如果需要同时激发多个元素,可以将其修改为在
elmList上循环。

如果没有jQuery,可以使用以下命令激发DOM事件:


此代码在与选择器匹配的第一个元素上触发,但如果需要同时触发多个元素,则可以将其修改为循环执行
elmList

不幸的是,我只能使用本机javascript来执行此操作。我没有访问
触发器的权限。谢谢不幸的是,我只能使用本机javascript来实现这一点。我没有访问
触发器的权限。谢谢我确信我已经实现了与您上面描述的相同的事情。没有理由它不起作用。页面和chrome扩展彼此共享完整的DOM,包括事件。100%清楚地说,您正在内容脚本或通过
executeScript
,运行扩展代码,对吗?@apsillers它确实是一个内容script@juzerali我得到一个“对象没有“单击”方法”chromeOhh中的错误我只记得我收到了相同的消息。我所做的是没有在jQuery中包装对象。我只是使用普通javascript触发了click事件,如下面的
document.getElementById('id')。click()
。看看这是否对你有效。我确信我已经实现了与你上面描述的相同的东西。没有理由它不起作用。页面和chrome扩展彼此共享完整的DOM,包括事件。100%清楚地说,您正在内容脚本或通过
executeScript
,运行扩展代码,对吗?@apsillers它确实是一个内容script@juzerali我得到一个“对象没有“单击”方法”chromeOhh中的错误我只记得我收到了相同的消息。我所做的是没有在jQuery中包装对象。我只是使用普通javascript触发了click事件,如下面的
document.getElementById('id')。click()
。看看这对你是否有效。
$(selector).trigger('click');
var selector = "#...";
var elmList = document.querySelectorAll(selector);

var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
elm[0].dispatchEvent(evt);