Tampermonkey触发器(“ click”)可在控制台上使用,而不是在页面上

时间:2019-04-17 18:43:27

标签: tampermonkey

在我使用的网站上,单击“购买链接”元素后会出现一个确认链接。我想通过编写一些代码以在单击“购买链接”后自动单击“是”来有效地跳过确认步骤。我将data-id传递给操作,以确定要单击的“是”按钮(每页隐藏多个),但是在对该元素调用.trigger(“ click”)时,它什么也不做。我将setTimeout作为一种基本方法来确保在代码被触发之前该元素在DOM中可见,而我仍然没有任何结果。如果我粘贴:

var id = "blah";
$("a[data-id*='"+id+"']").trigger("click");

进入控制台,它的行为符合预期,但不会在Tampermonkey中执行此操作。任何帮助将不胜感激,谢谢。

我已经尝试过.triggerHandler和.click。 我将超时设置得非常大,以确保该元素位于DOM中。

function bindCarts() {
        console.log("Adding listeners.");
        var classname = document.getElementsByClassName("buy-link");
        $(classname).each(function(_, ele) {
            $(ele).bind('click', function(__) {
                setTimeout(function() {
                    var id = __.currentTarget.getAttribute('data-id');
                    console.log("Click " + id);
                    $("a[data-id*='"+id+"']").trigger("click");
                }, 500);
            });
        });
    }

0 个答案:

没有答案