如何防止Firefox中的网站捕获/劫持键盘?[重复]


18

一些网站(如今看起来越来越多)似乎劫持了各种组合键,以在网站内部执行并由网站本身定义的操作。在标题不恰当的问题/,GMail中有一个具体示例;还有的StackExchange编辑框中其劫持Ctrl+ G的“添加图片”(而不是Firefox的正常“查找下一个”); 有Facebook劫持Esc来隐藏叠加层,而不是通常的“停止加载”。我敢肯定我可以继续举例,但这足以说明这个问题与任何一个特定的网站无关。

根据我所在的网站,我广泛使用键盘,而使用键盘快捷方式的方式也有所不同,这是我的主要烦恼。如果按浏览器定义的键盘快捷键,则希望执行浏览器定义的操作,而不要执行其他操作。我也不希望通常无法通过键盘访问的某些功能无法通过键盘访问,或者突然重新映射到其他按键组合。

我意识到这可能会使某些站点上的某些事情变得麻烦,但是在这种情况下,我更喜欢保持一致性。

是否可以设置Firefox来阻止忽略网站的此类劫持,并支持Firefox自己定义的行为?

至少在Linux和Windows上都至少适用于Firefox版本20、21和22的解决方案是理想的。

编辑 Mozilla Bugzilla错误380637网页是否应该能够覆盖浏览器的键盘快捷键?似乎表明它至少正在被查看。该错误最初是在2007年中提交的,到2013年年中一直有效。有趣的是,错误775002(使用户能够禁用JavaScript劫持键盘快捷键)被认为与Firefox 15重复。


2
我怀疑他们是通过Javascript执行此操作的。如果是这样,将没有禁用Javascript的通用方法来禁用它。
Daniel R Hicks

是的,也许api.jquery.com/keypress 。如果有一个允许在客户端选择性重写.js的插件,那将很有趣。然后您可以使用正则表达式或类似符号将这些调用注释掉
James

4
即使通过Javascript完成,在某些地方也必须包含按键监听器,并且该功能由浏览器提供。我认为没有理由无法修改该代码,以使浏览器首先解释任何击键(可能带有修饰键),并且如果浏览器采取了任何响应措施,则不会将按键传递给Java提供的Javascript。网页。使这种行为可配置(如果您不想通过设置GUI公开它,仍然存在about:config,它已经允许访问许多此类高级设置)应该相当容易。
CVn

@Downvoter为什么要投票?
CVn

1
@Karan这个问题已有整整三年的历史了,被接受的答案是有关Firefox 3.6的。尽管我并不完全同意Firefox当前的版本编号方案,但从那时起,经过3年的开发,我们的版本可能已经超过20个。该说的答案仍然对当前版本的Firefox仍然有效?
CVn

Answers:


1

您可以使用Vimperator插件。为了使Firefox成为仅键盘的界面,它首先侦听您按下的任何按键并执行自己的操作。有时,当您需要使用站点定义的键盘劫持时,可以轻松地启用/禁用传递模式。

让我们以GMail为例,它提供了许多键盘快捷键。但是,当您按下任何此类快捷方式时,该快捷方式将由Vimperator本身处理。例如,/在GMail内部按通常可将光标放在搜索框中。但是/在Vimperator处于活动状态时按GMail页面会触发其默认页面搜索(在Vim编辑器中为ala搜索)。其他GMail快捷方式(例如o c或)的情况相同Ctrl+Enter。这意味着,Vimperator将成为Firefox中击键的第0个侦听器,甚至覆盖第1个可能的侦听器,以便您的键盘快捷键在整个浏览器中都是全局的。

Vimperator基本上是Firefox上的Vim包装器。如果您对Vim感到满意,那么Vimperator似乎是一个久违的朋友。:-)

无论如何,一些Vimperator键盘快捷键可以帮助您入门:

o<link>打开。此序列使Vimperator命令行(在屏幕底部)被激活,该命令open <link>将被放置在此处,中间为您插入空格。按下Enter以加载页面。

t<link激活命令tabopen并在新选项卡中打开链接。

gt切换到下一个标签。Ctrl+Tab并且Ctrl+PgUp/Dn还工作。

gT 切换到上一个标签。

ZZ 保存会话后关闭FF。

f用高亮的数字标记页面视图中的所有链接。输入数字可打开链接。所有突出显示的字段都是可搜索的。因此,您可以键入突出显示的链接中要转到的任何文本,而不用键入数字。

F 在背景标签中打开链接。

h j k l导航页面left down upright

Vimperator提供了许多键盘快捷键(当然,可以使整个操作过程轻松无鼠标),并且FF的大多数默认快捷键都可以正常使用。您可以找到突出显示文本,复制文本,像浏览文本文档一样浏览页面,放大/缩小,模拟链接上的鼠标悬停以及简单地说可以使Firefox响应鼠标的任何内容的快捷方式。

就我所使用的而言,它唯一无法使用的地方是Flash盒内部,因为FF无法到达其中的内容。

如果您不了解Vim或不熟悉Vim,可能需要一点时间来适应。但是,真正的广泛在线帮助就在眼前:h<Enter>

这是链接


显然,vimperator不再与现代版本的Firefox兼容。
sylvainulg

-1

1
NoScript允许您加载或不加载特定域中的所有Javascript。我已经使用过它了,它的功能很棒,但是您是否尝试过使用不带Javascript的Facebook或StackExchange?体验介于非常痛苦和完全无法使用之间。仅仅为了使我的Esc密钥恢复正常而在全球范围内为Facebook禁用所有Javascript实在是太过分了。
CVn

尝试将脚本标记为不受信任的图片:i.stack.imgur.com/45aAv.png或使用代理来阻止来自脚本的任何响应,例如。提琴手
荷马·辛普森一家

如果我使用NoScript将例如facebook.com标记为不受信任,则不会执行源自facebook.com的Javascript。这不是我想要的。请重新阅读问题。
CVn

可以使用以下链接:addons.mozilla.org/sv-se/firefox/addon/greasemonkey和脚本链接:userscripts.org/scripts/show/125936 <= 参见此处(“ if(src.search(/ bad \ js /)!= -1){“)
荷马·辛普森一家

我仍然看不到这对我有什么帮助。您能否将其编辑为答案,并对其如何回答问题有更全面的说明?
CVn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.