如何禁用/删除 imgur.com 上的网站键盘热键?具体来说,上传重音符/波浪号 (`) 命令
How do I disable / remove website keyboard hotkey on imgur.com? Specifically, the upload accent / tilde (`) command
我以为我找到了一个 tampermonkey 脚本,但它根本不起作用。你有什么智慧吗?
https://greasyfork.org/en/scripts/31704-imgur-remove-key-listener
如何禁用网站快捷键盘热键?我使用 Push to talk discord,密钥干扰了我的浏览体验。
我在 google 上搜索 "unbind website hotkeys -browser"、"script disable remove website keyboard hotkey" 和 "disable imgur hotkey" 等查询,但前 20 个链接没有结果。
// ==UserScript==
// @name Imgur remove key listener
// @namespace xxx
// @description Removes the key shortcuts on imgur
// @include *://imgur.com/*
// @version 1
// @grant none
// @locale en
// ==/UserScript==
$(document).unbind('keydown').unbind('keyup');
当我在键盘上按波浪号/重音键时,上传对话框不应出现在 imgur 网站上。
监听器看起来不会同步添加,因此同步运行的用户脚本不会删除监听器。
另一种方法(也是对类似问题的一个很好的通用解决方案)是在 捕获阶段 中向 window
添加一个侦听器,然后调用 stopPropagation
关于活动:
['keydown', 'keyup'].forEach((eventName) => {
window.addEventListener(
eventName,
(e) => {
e.stopPropagation();
},
true // capturing phase - very important
);
});
这将阻止添加到子节点的侦听器被触发。为了同时防止添加到 window
之后 触发此侦听器的侦听器,您可以调用 e.stopImmediatePropagation()
.
这种技术不起作用的唯一情况是页面在 window
您的用户脚本运行之前添加了自己的捕获侦听器。
为了确保您的脚本尽可能快地执行(您希望尽快附加您自己的侦听器),您可以将
// @run-at document-start
在元数据块中,这可以提供帮助,但不幸的是,它并不完全可靠。
我以为我找到了一个 tampermonkey 脚本,但它根本不起作用。你有什么智慧吗?
https://greasyfork.org/en/scripts/31704-imgur-remove-key-listener
如何禁用网站快捷键盘热键?我使用 Push to talk discord,密钥干扰了我的浏览体验。
我在 google 上搜索 "unbind website hotkeys -browser"、"script disable remove website keyboard hotkey" 和 "disable imgur hotkey" 等查询,但前 20 个链接没有结果。
// ==UserScript==
// @name Imgur remove key listener
// @namespace xxx
// @description Removes the key shortcuts on imgur
// @include *://imgur.com/*
// @version 1
// @grant none
// @locale en
// ==/UserScript==
$(document).unbind('keydown').unbind('keyup');
当我在键盘上按波浪号/重音键时,上传对话框不应出现在 imgur 网站上。
监听器看起来不会同步添加,因此同步运行的用户脚本不会删除监听器。
另一种方法(也是对类似问题的一个很好的通用解决方案)是在 捕获阶段 中向 window
添加一个侦听器,然后调用 stopPropagation
关于活动:
['keydown', 'keyup'].forEach((eventName) => {
window.addEventListener(
eventName,
(e) => {
e.stopPropagation();
},
true // capturing phase - very important
);
});
这将阻止添加到子节点的侦听器被触发。为了同时防止添加到 window
之后 触发此侦听器的侦听器,您可以调用 e.stopImmediatePropagation()
.
这种技术不起作用的唯一情况是页面在 window
您的用户脚本运行之前添加了自己的捕获侦听器。
为了确保您的脚本尽可能快地执行(您希望尽快附加您自己的侦听器),您可以将
// @run-at document-start
在元数据块中,这可以提供帮助,但不幸的是,它并不完全可靠。