shortcut.js 用 JavaScript 处理键盘快捷键

发布于 2020-02-12 20:02:26 字数 3054 浏览 3264 评论 0

用 JavaScript 处理键盘快捷键,尽管现在有许多 JavaScript 库可用,但我找不到一个可以方便地向您的 JavaScript 应用程序添加键盘快捷键(或加速器)的库。这是因为键盘快捷键只在 JavaScript 游戏中使用,没有真正的 Web 应用程序使用键盘快捷键在其界面周围导航。但谷歌应用程序,如谷歌阅读器和 Gmail 改变了这一点。因此我创建了一个函数,使向应用程序添加快捷方式更加容易。

方法事件

shortcut.add()

第一个参数:快捷键组合 - String
快捷键组合应以此格式指定 Modifier[+Modifier..]+Key
第二个参数:回调函数 - Function
在这里指定函数。如果按下快捷键,将调用此函数。事件变量将传递给它。
第三个参数 [可选] : Options - Associative Array
这个参数必须是与这三个选项中的任何一个相关联的数组。

type - String
事件类别 - 可以是 keydown、keyup、keypress,默认值 keydown
disable_in_input - Boolean
如果将此设置为 true,则将在输入文本区域字段中禁用键盘捕获。如果这些元素具有焦点,则键盘快捷方式将无法工作。这对于单键快捷键非常有用。默认值 false
target - DOM Node
应该监视键盘事件的元素,默认值 document
propagate - Boolean
是否允许事件冒泡,默认值 false
keycode - Integer
监听键码,例如键码 65 就是字母 a。
{
  'type':'keydown',
  'propagate':false,
  'disable_in_input':true,
  'target':document,
  'keycode':65
}

示例

shortcut.add("Ctrl+B",function() {
  alert("The bookmarks of your browser will show up after this alert...");
},{
  'type':'keydown',
  'propagate':true,
  'target':document
});

shortcut.remove()

只有一个参数--之前附加到函数的快捷组合。确保此字符串与添加快捷方式时使用的字符串完全相同。

shortcut.add("Ctrl+B",function() {
  alert("Bold");
});
//Remove the shortcut
shortcut.remove("Ctrl+B");

支持的热键

快捷键应以此格式指定。

Modifier[+Modifier..]+Key

例如

Ctrl+A

有效的修饰符是:

  • Ctrl
  • Alt
  • Shift
  • Meta

您可以指定一个没有修饰符的序列,例如:

shortcut.add("X",function() {
  alert("Hello!");
});

有效的热键

  • 所有字母键和数字键 - abc...xyz,01..89
  • 特殊字符,标准键盘上的每个特殊字符都可以访问。
  • 特殊键
    • Tab
    • Space
    • Return
    • Enter
    • Backspace
    • Scroll_lock
    • Caps_lock
    • Num_lock
    • Pause
    • Insert
    • Home
    • Delete
    • End
    • Page_up
    • Page_down
    • Left
    • Up
    • Right
    • Down
    • F1
    • F2
    • F3
    • F4
    • F5
    • F6
    • F7
    • F8
    • F9
    • F10
    • F11
    • F12

这些键不区分大小写,所以不要担心使用正确的大小写,这个库处于测试版,所以请期待一些问题。欢迎提出建议。

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

文章 0 评论 0

云雾

文章 0 评论 0

夏尔

文章 0 评论 0

alipaysp_yxYxYl56FW

文章 0 评论 0

涙—继续流

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文