在 Firefox 中更改 accesskey 修饰键

Posted

技术标签:

【中文标题】在 Firefox 中更改 accesskey 修饰键【英文标题】:Change accesskey modifier keys in Firefox 【发布时间】:2017-02-07 10:15:46 【问题描述】:

我正在开发一个网站,其中每个页面都有按钮,例如“提交”和“取消”。这些按钮中的每一个都有一个accesskey 属性。提交按钮的accesskey属性设置为S,取消按钮的accesskey属性设置为C

在不同的浏览器中使用不同的修饰符激活访问键。 Internet Explorer、Safari 和 Google Chrome 仅使用 alt,而 Firefox 使用 altshift 键。同样,Firefox 使用 alt + s 来打开历史菜单。

此问题的答案不应建议更改浏览器配置中的设置,因为这在生产站点上是不可行的。

如何将 Firefox 用于 accesskey 的修饰键更改为 alt,并阻止历史菜单打开?

我在 Ubuntu 16.04 中工作。

【问题讨论】:

如果现有答案不能回答您的问题,请解释如何,请记住,并非一切皆有可能,如果不是,这是一个有效的答案. @QPaysTaxes 现有答案在 ubuntu 16.04 中无法使用 firefox 浏览器 请给我一个合适的解决方案 这个问题不成立。 如果 ^ 不是特别有用,也许现在你明白我所说的“澄清”是什么意思了。 “不工作”不是问题描述。/ 【参考方案1】:

据我所知,您不能更改激活accesskey 所需的组合键,但您要实现的目标不需要使用accesskey 属性。可以直接监听 keydown 事件。

为文档添加一个 keydown 事件监听器。在处理函数中检查是否按下了 alt 和 s 键。如果它们是 - 并且没有按下其他修饰键 - 阻止事件的默认操作,然后在提交按钮上触发单击事件。在提交按钮上触发单击事件将依次触发提交事件侦听器,而 @987654321 @

const submit = document.querySelector('#submit')

document.addEventListener('keydown', e => 
  // If the only modifier key is the alt key, and the s key is pressed
  if(!e.metaKey && !e.ctrlKey && !e.shiftKey && e.altKey && e.key === 's') 
    e.preventDefault()  // Prevent the mozilla history menu from opening
    submit.click()      // Trigger the form submission
  
)
<form action=""><button type="submit" id="submit"><u>S</u>ubmit</button></form>

注意事项1.虽然这适用于当前稳定版本的 Firefox,但我还没有测试过其他版本2。此示例使用 2015 版 The ECMAScript Language Specification 中引入的语言功能。这些功能不是达到预期效果所必需的,而是使代码更易于阅读。如果需要支持旧版浏览器,可以用var代替const,用标准函数代替粗箭头函数。3.不幸的是,由于沙盒,Stack Overflow sn-p 功能不适用于此示例,请参阅此example on JSBin

【讨论】:

Answer 在 ubuntu 16.04 中无法使用 firefox 浏览器 @bobmarti 您必须包含一个可重现的示例,说明它在 ubuntu 上的 firefox 中不起作用,因为上面的示例实际上对我在 ubuntu 上的 firefox 中有效。【参考方案2】:

如果您想深入了解它,请尝试这篇文章以获得更多信息:http://kb.mozillazine.org/Ui.key.contentAccess

如果您发现无法习惯“in-tab”首选项对话框,则有一个返回旧样式对话框的首选项:

    在新选项卡中,在地址栏中键入或粘贴 about:config,然后 按 Enter。点击承诺小心的按钮。

    在列表上方的搜索框中,键入或粘贴首选项,然后暂停 列表被过滤

    双击 browser.preferences.inContent 首选项进行切换 从真到假

注意:我不知道这是否会永远存在于 Firefox 中,或者只是一个过渡功能。

【讨论】:

我提供了一些关于我的问题的详细信息。我不想更改 about:config 中的任何内容。 感谢您的链接。我打开 about:config,然后写了 ui.key.contentAccess = 6,其中 6 = 2 (Ctrl) + 4 (Alt)。现在我可以使用 Ctrl + Alt 来访问 Wikipedia 中的快捷方式。参见***:键盘快捷键w.wiki/Trm

以上是关于在 Firefox 中更改 accesskey 修饰键的主要内容,如果未能解决你的问题,请参考以下文章

提示用户在Firefox中更改about:config标志

在 IE/Chrome 中动态更改嵌入式视频 src(适用于 Firefox)

在 Firefox 中更改 window.location.href 而不关闭 websockets

jQuery 内容()更改 iframe 的 html 在 Firefox 中消失

如何让 Firefox 在文件更改时自动刷新?

使用 AngularJS 在 Firefox 中更改请求标头时遇到问题