Fra*_*Kim 2 jquery greasemonkey tampermonkey
我有问题通过Greasemonkey/Tampermonkey触发jQuery点击...
jQuery('button').each(function() {
jQuery(this).css('background', 'red');
jQuery(this).click();
location.assign("javascript:jQuery(this).click();void(0)");
}?
Run Code Online (Sandbox Code Playgroud)
你可以看到我甚至尝试过location.assign hack但是没有任何东西可以工作,控制台也没有错误.
有趣的是,是的,背景颜色确实变为红色所以我假设它的.click()工作方式与其他jQuery方法不同.
jQuery .click()只是jQuery .trigger()和Docs的快捷方式:
当相应的事件发生时,将触发附加.bind()或其快捷方法之一的任何事件处理程序.但是,可以使用.trigger()方法手动触发它们.
这意味着不是由jQuery设置的事件处理程序不能总是由.click()(或.trigger())触发.
要解决此问题,请发送实际的鼠标事件:
jQuery ('button').each ( function () {
jQuery (this).css ('background', 'red');
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
this.dispatchEvent (clickEvent);
}
Run Code Online (Sandbox Code Playgroud)
请注意,在一些罕见的情况下,页面实际上将处理事件的组合,而不是click理论上,页面可以区分任何人为产生的事件(尽管我还没有在野外看到它).
如果是这种情况,请链接到目标页面,以便我们可以进行解决方法.