首页 文章

用户点击工作,Jquery点击不工作[重复]

提问于
浏览
-1

这个问题在这里已有答案:

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

  • 1

    不要使用 click ,而是使用 trigger ,它执行附加到给定事件类型的匹配元素的处理程序 . 因此,您的代码将如下所示 .

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

    您可以在here中了解有关jQuery的 trigger() 的更多信息 .

相关问题