我正在创建一个脚本,该脚本自动单击社交媒体网站上的“接受请求”按钮。 要执行它,我使用tampermonkey。
$( document ).ready(function() {
addFriend();
});
function addFriend(){
$(".acceptRequest").each(function(){
var button = this;
setTimeout(function(){
button.click();
},1);
});
}
运行时,我得到
未捕获的ReferenceError:
但是,当我自己单击按钮时,它显然可以正常工作。
那么我自己单击它和让jquery单击它之间有什么区别?
编辑: 确切的错误是这样的:
Uncaught ReferenceError: manageRequest is not defined
at HTMLButtonElement.onclick (requests:2107)
at Object.trigger (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:5)
at HTMLButtonElement.eval (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:5)
at Function.each (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:5)
at w.fn.init.each (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:5)
at w.fn.init.trigger (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:5)
at eval (userscript.html?id=2ad30bde-066c-4303-83a2-eae54846284e:45)
这是我要单击的按钮:
<button type="button" class="acceptRequest" onclick="manageRequest(bunch of userinformation here)"><span>accept</span></button>
答案 0 :(得分:1)
不要使用click
,而要使用trigger
,它会为给定的事件类型执行附加到匹配元素的处理程序。因此,您的代码看起来像下面的代码。
setTimeout(function(){
$(button).trigger( "click" );
},1);
您可以在here中进一步了解jQuery的trigger()
。