绕过等待时间的 TamperMonkey JS UserScript

问题描述

尝试为 TamperMonkey 编写一个 用户脚本,以便在 浏览器 中运行以绕过等待时间训练。 这是该页面中使用的脚本:

var timeout;
$(document).ready(function() {
    $('#countdown').each(function(i,e) {
        if (timeout) return;

        timeout = setTimeout(tick,1000);

        function tick() {
            console.log('Tick');
            var remaining = parseInt($(e).find(".seconds").text()) - 1;
            if (remaining <= 0) {
                $(e).css('visibility','hidden');
            } else {
                $(e).find(".seconds").text(remaining.toString());
                setTimeout(tick,1000);
            }
        }
    });
});

在我的脚本中启用了 JQuery 并且正在运行,我能够禁用/启用一些网络元素,这里的问题只是关于“等待时间”。

可以绕过吗?

我/你需要关于它的任何额外信息吗?

我尝试了一些代码,仍然没有成功:

例如:

// Tried the below variables with a hope to override them in therms they exists.
// wasn't sure if even the usage or approach be totally correct.
let seconds = 0;
let remaining = 0;
let tick = 1;
let timeout = 60;

$(document).ready(function () {
    // altered some elements.

    seconds = 0;
    remaining = 0;
    tick = 1;
    timeout = 60;
});

解决方法

您在用户脚本中声明的变量在页面脚本中根本没有被引用,所以我不知道您希望用户脚本影响什么。

由于页面的脚本从 .seconds 元素中检索剩余秒数,您可以修改该元素以消除超时:

document.querySelector('.seconds').textContent = '1';

就是这样。这样您就不必等待倒计时,它会立即完成。