您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevent websites from hijacking specific keyboard shortcuts, like Chrome Tab Switcher
- // ==UserScript==
- // @name Stop Stealing My Shortcuts
- // @namespace https://github.com/mariczne/stop-stealing-my-shortcuts
- // @version 0.1.2
- // @description Prevent websites from hijacking specific keyboard shortcuts, like Chrome Tab Switcher
- // @license MIT
- // @author mariczne
- // @match https://discord.com/*
- // @match https://www.facebook.com
- // @match https://app.slack.com/*
- // @icon https://github.githubassets.com/pinned-octocat.svg
- // @supportURL https://github.com/mariczne/stop-stealing-my-shortcuts/issues
- // @grant none
- // ==/UserScript==
- (function () {
- "use strict";
- // List of shortcuts to prevent from hijacking
- const blockedShortcuts = [
- { key: "a", ctrl: false, shift: true, alt: false, meta: true }, // Cmd+Shift+A
- { key: "a", ctrl: true, shift: true, alt: false, meta: false }, // Ctrl+Shift+A
- // Add other shortcuts as needed
- ];
- window.addEventListener(
- "keydown",
- function (event) {
- if (!event.isTrusted) return; // Ignore events dispatched by this script
- for (const shortcut of blockedShortcuts) {
- if (
- event.key.toLowerCase() === shortcut.key.toLowerCase() &&
- event.ctrlKey === shortcut.ctrl &&
- event.shiftKey === shortcut.shift &&
- event.altKey === shortcut.alt &&
- event.metaKey === shortcut.meta
- ) {
- event.stopImmediatePropagation();
- if (document.activeElement) {
- document.activeElement.blur(); // Remove focus from any element
- }
- const newEvent = new KeyboardEvent("keydown", {
- key: event.key,
- code: event.code,
- ctrlKey: event.ctrlKey,
- shiftKey: event.shiftKey,
- altKey: event.altKey,
- metaKey: event.metaKey,
- bubbles: true,
- cancelable: true,
- });
- window.setTimeout(() => {
- document.dispatchEvent(newEvent);
- }, 0);
- return;
- }
- }
- },
- true
- );
- })();