如何防止我访问的页面覆盖选定的 Firefox 快捷键?

Sec*_*hel 48 firefox keyboard-shortcuts javascript hotkeys firefox-extensions

在 Firefox 中,如何防止页面通过 Javascript 逐键覆盖 Firefox 内置键盘快捷键?最好也以每个站点为基础?最令人沮丧的覆盖是链接到“在页面中查找”的正斜杠 ('/')。Google 搜索结果、Twitter 时间线、某些 wiki 和其他页面等网站窃取了自己搜索框的斜杠键,这是完全错误的。

由于我的代表让我提问、编辑和回答问题,但不允许添加评论,因此这基本上是另外两个未正确回答的问题的重复:

如何停止网站以覆盖我的键盘快捷键

Firefox:不允许网站覆盖 /(斜线)键

Mik*_*Hay 16

基于 edymtt 的回答,我创建了一个仅禁用特定键盘快捷键的用户脚本。您可以通过将键码添加到键码数组来添加更多要禁用的快捷方式,或者通过用@include一个或多个模式替换标签来限制要应用它的站点。

使用油脂猴安装。

// ==UserScript==
// @name           Disable keyboard shortcuts
// @description    Stop websites from hijacking keyboard shortcuts
//
// @run-at         document-start
// @include        *
// @grant          none
// ==/UserScript==

keycodes = [191] // Keycode for '/', add more keycodes to disable other key captures

document.addEventListener('keydown', function(e) {
//    alert(e.keyCode); //uncomment to find out the keycode for any given key
    if (keycodes.indexOf(e.keyCode) != -1)
    {
        e.cancelBubble = true;
        e.stopImmediatePropagation();
    }
    return false;
});
Run Code Online (Sandbox Code Playgroud)

  • 惊人的!元键几乎是完整的解决方案——我试图阻止 Google Docs 拦截 Previous-tab (Cmd+Left) 和 Next-tab (Cmd+Right),发现我还需要将 useCapture 设置为 true;即,document.addEventListener('keydown', yourHandlerFn, true) (2认同)
  • 不幸的是,现在不再工作了(在 phabricator 和 twitter 上测试过)。触发了自定义侦听器,但无论如何都会触发站点的事件,并且未显示“在页面中搜索”。 (2认同)

Ale*_*min 13

从 Firefox 58 开始,可以禁用每个网站的键盘快捷键覆盖。

“覆盖键盘快捷键”和许多其他权限可在“页面信息 -> 权限”中使用(在 URL 栏中的信息图标下)。

superuser.com 的 Firefox 权限示例

Firefox 中引入了键盘覆盖 #380637

  • 此外,不幸的是,它不会阻止网页捕获非移位(即,没有`Ctrl`、`Shift` 或`Alt` 键)输入——这意味着这对中提到的斜杠键根本没有帮助原来的问题。 (8认同)
  • 是的,11 年后,他们终于完成了修复那张票的半途而废的工作。不幸的是,当前的实现(仍在 FF 59 中)完全禁用了 `Backspace` 和 `Delete` 键,这真的很糟糕。 (2认同)
  • 什么是固定的?JIRA 和 Confluence 仍然会抓取各种不断扰乱我工作流程的键。我认为这是 Atlassian 的问题:他们需要允许人们禁用(和/或更改)他们的“快捷方式”。 (2认同)

edy*_*mtt 8

关于 Google 和 Quick Find 快捷方式,您可以安装此 Greasemonkey 脚本:

http://userscripts-mirror.org/scripts/show/132237

正如描述所说,它“阻止谷歌将搜索输入集中在每次按键上”——特别是,如果你/在搜索框外按下键盘焦点,快速查找将出现,就像在其他网站上一样。

我只是在没有接触代码的情况下安装了它,但我认为它可以很容易地适应其他站点和/或其他快捷方式。