您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
白嫖万岁
当前为
// ==UserScript== // @name 【哔哩哔哩】按键禁用 // @namespace http://tampermonkey.net/ // @version 0.1.3 // @description 白嫖万岁 // @author AkagiYui // @license MIT // @match https://www.bilibili.com/video/* // @match https://www.bilibili.com/list/* // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_setValue // @grant GM_getValue // @run-at document-start // ==/UserScript== /******/ (() => { // webpackBootstrap var __webpack_exports__ = {}; (function () { "use strict"; // 目标按键 var keysInfo = [ { name: "q", description: "点赞" }, { name: "w", description: "投币" }, { name: "e", description: "收藏" }, { name: "d", description: "关闭弹幕" }, { name: "f", description: "全屏" }, { name: "m", description: "静音" }, { name: "[", description: "上一集" }, { name: "]", description: "下一集" }, ]; // 读取配置,是否阻止特定按键 var keysConfig = {}; keysInfo.forEach(function (key) { keysConfig[key.name] = GM_getValue("block".concat(key.name.toUpperCase()), false); }); // 遍历keyConfig对象,注册菜单命令 var menuIds = []; function registerMenuCommand() { // 删除之前注册的菜单命令 menuIds.forEach(function (id) { GM_unregisterMenuCommand(id); }); // 删除之前注册的id menuIds = []; keysInfo.forEach(function (key) { var commandName = keysConfig[key.name] ? "✅" : "❌"; commandName += " \u6309\u952E ".concat(key.name.toUpperCase(), " - ").concat(key.description); var id = GM_registerMenuCommand(commandName, function () { updateConfig(key.name, !keysConfig[key.name]); registerMenuCommand(); }); menuIds.push(id); }); } // 更新配置函数 function updateConfig(key, value) { keysConfig[key] = value; GM_setValue("block".concat(key.toUpperCase()), value); } // 阻止特定按键的函数 function preventCertainKeys(e) { if (keysConfig[e.key.toLowerCase()]) { e.stopPropagation(); e.preventDefault(); } } // 覆盖原生的 addEventListener 方法来过滤 'keydown' 事件 var originalAddEventListener = EventTarget.prototype.addEventListener; EventTarget.prototype.addEventListener = function (type, listener, options) { if (type === "keydown") { var newListener = function (e) { if (keysConfig[e.key.toLowerCase()]) { return; } listener.apply(this, arguments); }; originalAddEventListener.call(this, type, newListener, options); } else { originalAddEventListener.call(this, type, listener, options); } }; // 从 document 对象移除可能已经存在的 'keydown' 事件监听器 document.removeEventListener("keydown", preventCertainKeys); // 添加一个新的 'keydown' 事件监听器来阻止配置中设定的按键默认行为 document.addEventListener("keydown", preventCertainKeys); registerMenuCommand(); })(); /******/ })() ;