gpt4 book ai didi

javascript - 在 Firefox 中更改 accesskey 修饰键

转载 作者:太空狗 更新时间:2023-10-29 13:29:05 25 4
gpt4 key购买 nike

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

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

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

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

我在 Ubuntu 16.04 中工作。

最佳答案

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

向文档添加一个 keydown 事件监听器。在处理程序函数中检查是否按下了 alt 和 s 键。如果它们——并且没有按下其他修饰键——阻止事件的默认 Action ,则触发提交按钮上的点击事件。触发提交按钮上的点击事件将依次触发提交事件监听器,而triggering the submit event on the form directly may not.

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 片段功能不适用于此示例,请参阅此 example on JSBin

关于javascript - 在 Firefox 中更改 accesskey 修饰键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42087155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com