用户点击有效,jQuery点击无效

时间:2018-12-08 21:32:16

标签: jquery tampermonkey

我正在创建一个脚本,该脚本自动单击社交媒体网站上的“接受请求”按钮。 要执行它,我使用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>

1 个答案:

答案 0 :(得分:1)

不要使用click,而要使用trigger,它会为给定的事件类型执行附加到匹配元素的处理程序。因此,您的代码看起来像下面的代码。

setTimeout(function(){
    $(button).trigger( "click" );
},1);

您可以在here中进一步了解jQuery的trigger()