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 规范的一个例外)。

相关内容

用法

// 假设是 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 项目做贡献的信息,请阅读项目的主 贡献者指南。