如何在imgur.com上禁用/删除网站键盘热键?具体来说,upload accent / tilde(`)命令

时间:2019-02-18 06:30:53

标签: javascript keyboard-shortcuts keyboard-events userscripts tampermonkey

我以为我找到了一个tampermonkey脚本,但是它不起作用。你有智慧吗?

https://greasyfork.org/en/scripts/31704-imgur-remove-key-listener

如何禁用网站快捷键键盘热键?我使用“一键通”通话不和谐,并且按键干扰了我的浏览体验。

我在Google上搜索了诸如“取消绑定网站热键-浏览器”和“脚本禁用删除网站键盘热键”和“禁用imgur热键”之类的查询,但前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网站上。

1 个答案:

答案 0 :(得分:6)

这些监听器看起来并没有同步添加,因此,同步运行的用户脚本不会删除这些监听器。

一种替代方法是在捕获阶段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

不幸的是,它可以提供帮助,但并不完全可靠。