移除超星学习通课程页面的鼠标检测

自动删除页面上所有mouseout事件侦听器

// ==UserScript==
// @name         移除超星学习通课程页面的鼠标检测
// @namespace    Ladland
// @version      1.0
// @description  自动删除页面上所有mouseout事件侦听器
// @author       Ladland
// @match        *://mooc1.chaoxing.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // 重写EventTarget的addEventListener方法
    const originalAddEventListener = EventTarget.prototype.addEventListener;
    EventTarget.prototype.addEventListener = function(type, listener, options) {
        if (type === 'mouseout') {
            console.log('阻止mouseout事件侦听器添加:', listener);
            // 不执行添加mouseout事件侦听器的操作
            return;
        }
        return originalAddEventListener.call(this, type, listener, options);
    };

    // 重写EventTarget的removeEventListener方法
    const originalRemoveEventListener = EventTarget.prototype.removeEventListener;
    EventTarget.prototype.removeEventListener = function(type, listener, options) {
        if (type === 'mouseout') {
            console.log('阻止mouseout事件侦听器移除:', listener);
            // 不执行移除mouseout事件侦听器的操作
            return;
        }
        return originalRemoveEventListener.call(this, type, listener, options);
    };

    // 获取页面上所有元素
    const elements = document.querySelectorAll('*');
    // 遍历元素,移除mouseout事件侦听器
    elements.forEach(element => {
        const listeners = getEventListeners(element).mouseout;
        if (listeners) {
            listeners.forEach(listener => {
                element.removeEventListener('mouseout', listener.listener);
            });
        }
    });
})();