Javascript 是";KeyboardEvent.key“;跨浏览器的一致值?

Javascript 是";KeyboardEvent.key“;跨浏览器的一致值?,javascript,reactjs,keyboard,cross-browser,keyboard-events,Javascript,Reactjs,Keyboard,Cross Browser,Keyboard Events,我正在构建这个组件,并且依赖onKeyDown处理程序中的event.key值来允许/禁止某些输入 文档: 这些名称在不同浏览器中是否一致?我能确定Chrome、Edge、Firefox、Safari等浏览器上的ArrowRight会是ArrowRight吗?或者我应该使用某种类型的键代码值吗?您拥有所需的所有keycodes,它们是跨浏览器的。这些是您要使用的关键代码。您可以键入arrowsleft、right或backspace或其他任何内容来查找该键对应的keyvalue 此工具非常方便

我正在构建这个组件,并且依赖
onKeyDown
处理程序中的
event.key
值来允许/禁止某些输入

文档:

这些名称在不同浏览器中是否一致?我能确定Chrome、Edge、Firefox、Safari等浏览器上的
ArrowRight
会是
ArrowRight
吗?或者我应该使用某种类型的
代码值吗?

您拥有所需的所有
keycodes,它们是跨浏览器的。这些是您要使用的关键代码。您可以键入arrowsleft、right或backspace或其他任何内容来查找该键对应的
keyvalue

此工具非常方便,因此您可以将此链接保存在某个位置。

您拥有所有的
关键代码,这些代码都是跨浏览器的。这些是您要使用的关键代码。您可以键入arrowsleft、right或backspace或其他任何内容来查找该键对应的
keyvalue


此工具非常方便,因此您可以将此链接保存在某个位置。

在大多数浏览器中,它都可以正常工作

这些名称是W3标准:

但您将无法在Android手机Chrome中读取
event.key
event.keyCode

这上面有一个铬臭虫


在大多数浏览器中进行长时间的讨论,它应该可以正常工作

这些名称是W3标准:

但您将无法在Android手机Chrome中读取
event.key
event.keyCode

这上面有一个铬臭虫


中进行了长时间的讨论,谢谢,但这是否意味着
事件。键
值作为字符串不一致?不客气:)我不知道这一点,您可以通过在不同的浏览器上运行项目来解决。但问题是:为什么要使用字符串?您有100%跨浏览器的密钥码,因此您可能希望使用这些密钥码。这将提高可读性。但我会做一些测试!再次感谢!您好,经过进一步测试,这不适用于移动设备。W3测试工具显示基本上每个数字、逗号或点的代码229。看一看:谢谢,但这是否意味着
事件.key
值作为字符串不一致?不客气:)我不知道这一点,您可以通过在不同的浏览器上运行项目来解决。但问题是:为什么要使用字符串?您有100%跨浏览器的密钥码,因此您可能希望使用这些密钥码。这将提高可读性。但我会做一些测试!再次感谢!您好,经过进一步测试,这不适用于移动设备。W3测试工具显示基本上每个数字、逗号或点的代码229。看看:
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...");
  }
}