攔截B站快捷鍵w.a.s.d.e.r但不影響其他腳本或擴充功能

攔截B站快捷鍵w.a.s.d.e.r

// ==UserScript==
// @name         攔截B站快捷鍵w.a.s.d.e.r但不影響其他腳本或擴充功能
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  攔截B站快捷鍵w.a.s.d.e.r
// @author       shanlan(ChatGPT gpt-4.1)
// @match        *://www.bilibili.com/video/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    // 記錄原生addEventListener
    const rawWindowAddEventListener = window.addEventListener;

    // 攔截addEventListener
    window.addEventListener = function(type, listener, options) {
        // 只處理keydown
        if (type === 'keydown' && typeof listener === 'function') {
            // 包裝原本的listener
            const wrappedListener = function(e) {
                // 攔截 w a s d e r
                if(['w','a','s','d','e','r'].includes(e.key.toLowerCase())) {
                    // 直接return,不執行B站的快捷鍵邏輯
                    return;
                }
                // 其他鍵正常傳遞
                return listener.apply(this, arguments);
            };
            // 註冊包裝後的listener
            rawWindowAddEventListener.call(this, type, wrappedListener, options);
        } else {
            // 其他事件正常註冊
            rawWindowAddEventListener.call(this, type, listener, options);
        }
    };
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。