【发布时间】:2020-07-28 20:07:15
【问题描述】:
我正在构建这个组件,我依赖 onKeyDown 处理程序中的 event.key 值来允许/禁止某些输入。
文档:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
const ALLOWED_KEYS = [
"Ctrl", "Meta", "Shift","Home", "End",
"Backspace", "Delete",
"ArrowLeft", "ArrowRight", "Tab"
];
// ....
function onKeyDown(event) {
if (ALLOWED_KEYS.indexOf(event.key) >= 0) {
console.log("Allowed...");
}
else {
event.preventDefault();
console.log("NOT allowed...");
}
}
这些名称在浏览器中是否一致?我可以确定 ArrowRight 在 Chrome、Edge、Firefox、Safari 等设备上是 ArrowRight 吗?还是应该使用某种key 代码值?
【问题讨论】:
标签: javascript reactjs keyboard cross-browser keyboard-events