是否存在基于data-attribute、支持CMD+?弹出快捷键列表的独立JS库?
可用的现成实现方案
已经有完全匹配你需求的成熟开源JS库,完全不需要从零开发:
- 首选方案是轻量无依赖的
accesskeyjs:- 原生支持通过
data-accesskey属性绑定快捷键,和你给出的示例用法完全一致,不需要额外写JS注册逻辑 - 内置默认的快捷键帮助面板,触发方式就是你要的
Cmd+?/Ctrl+?,按下后会自动居中弹出浮层,列出所有已注册的快捷键和对应功能描述,描述默认读取元素的title属性,也支持自行配置自定义data属性来获取描述文本 - 打包后体积不到5KB,单文件引入即可直接使用,完全符合你对独立库的要求
示例用法和你写的完全一致:
<button data-accesskey="cmd+f" title="Start a search">Search</button> - 原生支持通过
- 如果后续需要更复杂的快捷键能力,比如作用域隔离、冲突处理、序列快捷键支持,可以选择
hotkeys-js搭配其官方的帮助面板扩展:- 核心库支持配置从自定义data属性读取快捷键定义,你可以直接指定读取
data-accesskey字段 - 配套扩展已经实现了自动收集全页快捷键、生成帮助浮层的能力,触发快捷键也可以自由配置为
Cmd+?/Ctrl+? - 生态更完善,适合需要长期迭代快捷键功能的中大型项目
- 核心库支持配置从自定义data属性读取快捷键定义,你可以直接指定读取
内容的提问来源于stack exchange,提问作者Daniel Bleisteiner
相关产品推荐
相关产品推荐

