【问题标题】:Change accesskey modifier keys in Firefox在 Firefox 中更改 accesskey 修饰键
【发布时间】: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 浏览器
  • 请给我一个合适的解决方案
  • 这个问题不成立。
  • 如果 ^ 不是特别有用,也许现在你明白我所说的“澄清”是什么意思了。 “不工作”不是问题描述。/

标签: javascript html firefox keyboard-shortcuts menubar


【解决方案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”首选项对话框,则有一个返回旧样式对话框的首选项:

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

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

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

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

【讨论】:

  • 我提供了一些关于我的问题的详细信息。我不想更改 about:config 中的任何内容。
  • 感谢您的链接。我打开 about:config,然后写了 ui.key.contentAccess = 6,其中 6 = 2 (Ctrl) + 4 (Alt)。现在我可以使用 Ctrl + Alt 来访问 Wikipedia 中的快捷方式。参见维基百科:键盘快捷键w.wiki/Trm
猜你喜欢
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多