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...");
}
}