WordPress 的键码实用工具,用于检查 onKeyDown 等事件中按下的按键。包含键盘按键的键码常量,例如 DOWN、UP、ENTER 等。
安装
安装该模块
npm install @wordpress/keycodes --save
此软件包假设你的代码将在 ES2015+ 环境中运行。如果你使用的环境对此类语言特性和 API 的支持有限或完全不支持,则应在代码中包含 @wordpress/babel-preset-default 附带的 polyfill。
用法
检查 onKeyDown 事件中使用了哪个按键:
import { DOWN, ENTER } from '@wordpress/keycodes';
// [...]
onKeyDown( event ) {
const { keyCode } = event;
if ( keyCode === DOWN ) {
alert( 'You pressed the down arrow!' );
} else if ( keyCode === ENTER ) {
alert( 'You pressed the enter key!' );
} else {
alert( 'You pressed another key.' );
}
}
API
ALT
ALT 键的键码。
ariaKeyShortcut
一个对象,包含用于获取与 aria-keyshortcuts HTML 属性兼容的快捷键格式的函数。
注意:提供的快捷键字符串(即不包括修饰键)应遵循 UI Events KeyboardEvent key Values 规范中指定的值——例如“Enter”、“Tab”、“ArrowRight”、“PageDown”、“Escape”、“Plus”或“F1”。空格键应使用“Space”字符串表示(这是 UI Events KeyboardEvent key Values 规范的一个例外)。
相关内容
- https://www.w3.org/TR/wai-aria-1.2/#aria-keyshortcuts
- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-keyshortcuts
- https://www.w3.org/TR/uievents-key/
用法
// 假设是 macOS:
ariaKeyShortcut.primary( 'm' );
// "Meta+M"
ariaKeyShortcut.primaryAlt( 'm' );
// "Meta+Alt+M"
// 假设是 Windows:
ariaKeyShortcut.primary( 'm' );
// "Control+M"
ariaKeyShortcut.primaryAlt( 'm' );
// "Control+Alt+M"
ariaKeyShortcut.primaryShift( 'del' );
// "Control+Shift+Delete"
BACKSPACE
BACKSPACE 键的键码。
COMMAND
COMMAND/META 键的键码。
CTRL
CTRL 键的键码。
DELETE
DELETE 键的键码。
displayShortcut
一个对象,包含用于显示快捷键的函数。
用法
// 假设是 macOS:
displayShortcut.primary( 'm' );
// "⌘M"
用于显示快捷键的键控函数映射。
displayShortcutList
返回用于显示的键盘快捷键组合各部分的数组。
用法
// 假设是 macOS:
displayShortcutList.primary( 'm' );
// [ "⌘", "M" ]
用于快捷键序列的键控函数映射。
DOWN
DOWN 键的键码。
END
END 键的键码。
ENTER
ENTER 键的键码。
ESCAPE
ESCAPE 键的键码。
F10
F10 键的键码。
HOME
HOME 键的键码。
isAppleOS
如果平台是 MacOS,则返回 true。
参数
- _window
Window:默认为 window 对象;用于 DI 测试。
返回值
boolean:如果是 MacOS 则为 true;否则为 false。
isKeyboardEvent
一个对象,包含用于检查键盘事件是否匹配预定义快捷键组合的函数。
用法
// 假设是按下 ⌘M 键的事件:
isKeyboardEvent.primary( event, 'm' );
// true
用于匹配事件的键控函数映射。
keyboardShortcut
一个对象,包含返回用于显示和描述键盘快捷键的三个值的函数:其显示字符串、其 aria-keyshortcuts 值及其纯文本标签。
它不包含原始表示;如需原始表示,请使用 rawShortcut。
可以使用它来代替分别调用 displayShortcut、ariaKeyShortcut 和 shortcutAriaLabel,例如用于构建 @wordpress/ui 组件的 shortcut 属性。
用法
// 假设是 macOS:
keyboardShortcut.primaryShift( 'm' );
// {
// displayShortcut: "⇧⌘M",
// ariaKeyShortcut: "Shift+Meta+M",
// label: "Shift Command M",
// }
用于快捷键显示值的键控函数映射。
LEFT
LEFT 键的键码。
modifiers
一个对象,包含根据平台返回可用修饰键的函数。
类型
WPModifierHandler< WPModifier >
PAGEDOWN
PAGEDOWN 键的键码。
PAGEUP
PAGEUP 键的键码。
rawShortcut
一个对象,包含用于获取原始快捷键的函数。
它们用于与 KeyboardShortcuts 配合使用。
用法
// 假设是 macOS:
rawShortcut.primary( 'm' );
// "meta+m"
RIGHT
RIGHT 键的键码。
SHIFT
SHIFT 键的键码。
shortcutAriaLabel
一个对象,包含用于返回键盘快捷键的 aria 标签的函数。
用法
// 假设是 macOS:
shortcutAriaLabel.primary( '.' );
// "Command + Period"
用于快捷键 ARIA 标签的键控函数映射。
SPACE
SPACE 键的键码。
TAB
TAB 键的键码。
UP
UP 键的键码。
withIgnoreIMEEvents
一个高阶函数,用于包装键盘事件处理函数,以确保其不是 IME 事件。
在 CJK 语言中,使用 IME(输入法编辑器)输入复杂字符。在 IME 组合输入期间,可能会触发用于控制 IME 而不是应用程序的键盘事件(例如 Enter 或 Escape)。这些事件应被任何应用程序逻辑忽略。
参数
- handler
( event: E ) => void:在确认不是 IME 事件后要执行的键盘事件处理函数。
返回值
- 给定事件处理函数的包装版本,该版本会忽略 IME 事件。
ZERO
ZERO 键的键码。
为此软件包做贡献
这是一个独立软件包,是 Gutenberg 项目的一部分。该项目以 monorepo 形式组织。它由多个自包含的软件包组成,每个软件包都有特定用途。此 monorepo 中的软件包发布到 npm,并被 WordPress 以及其他软件项目使用。
要了解更多关于为此软件包或整个 Gutenberg 项目做贡献的信息,请阅读项目的主 贡献者指南。