Tampermonkey挂机常用代码片段

挂机教程 2022-08-15

跳转

 window.location.href = "http://www.herokay.com/";

延时执行

为什么不用setTimeout??自行体会

    window.sleep = function(ms){
        return new Promise(resolve => setTimeout(resolve, ms || 1000))
    };
    // 延时3秒后进入未学课程
    (async () => {
        await sleep(3000);
        //执行后执行代码
    })();

遍历元素

 $("li.ovd").each(function()
{
    //执行代码
});

点击元素

$(el).trigger("click");
$("#img_right")[0].click();

使用本地js

// @require      file:///C:/js/jquery.js

屏蔽alert弹窗

unsafeWindow.alert=function(msg) {console.info(msg);};
window.alert=function(msg){console.info(msg);};

失去焦点暂停

window.onblur=null;

移除事件

下面代码仅限控制台使用,因为getEventListeners属于Devtool API,js无法直接使用

getEventListeners(document).visibilitychange.forEach(fn => document.removeEventListener("visibilitychange",fn.listener));

下面代码通用,在tampermonkey中加入run-at document-start

let oldadd=EventTarget.prototype.addEventListener
EventTarget.prototype.addEventListener=function (...args)
{
    if(args[0] == "visibilitychange")
    {
        console.info("拦截成功");
    }
    else
    {
        oldadd.call(this,...args);
    }
}
知识共享署名声明
本文由 herokay 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论