油猴脚本 自动移除事件监听器 blur window

// ==UserScript==
// @name         移除iedu.foxconn.com window blur监听
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  仅在iedu.foxconn.com域名下清除window.blur失活事件监听
// @author       You
// @match        *://iedu.foxconn.com/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    // 清空原生 onblur 赋值
    window.onblur = null;
    document.onblur = null;

    const originalAddEventListener = window.addEventListener;
    const originalDocAdd = document.addEventListener;
    const removeEventListener = window.removeEventListener;
    const blurListeners = [];

    // 劫持window添加事件
    window.addEventListener = function(type, listener, options) {
        if (type === 'blur') {
            blurListeners.push({ listener, options });
            return; // 直接丢弃blur绑定
        }
        return originalAddEventListener.call(this, type, listener, options);
    };

    // 劫持document添加事件
    document.addEventListener = function(type, listener, opts) {
        if (type === 'blur') return;
        return originalDocAdd.call(this, type, listener, opts);
    };

    // 清理所有已注册blur监听
    function clearBlur() {
        window.onblur = null;
        document.onblur = null;
        blurListeners.forEach(item => {
            removeEventListener.call(window, 'blur', item.listener, item.options);
        });
        blurListeners.length = 0;
    }

    clearBlur();
    // 定时循环清理,应对页面动态延时绑定blur
    setInterval(clearBlur, 300);
})();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值