我需要获得开头花括号的char代码值。
我使用"{".charCodeAt(0)
但它返回123,
但是,当我从键盘事件中获取值时,该值为219.哪一个是正确的?
请告诉我如何获得大括号的正确值
答案 0 :(得分:1)
根据wikipedia,{是123(0x7B)的unicode值。
但是,Keyboard.event中的keyCode属性不是unicode值,请参阅KeyboardEvent documentation on MDN。人们陷入了将其用作角色值的陷阱,因为没有移位修饰符,很多值实际上是相同的。
识别系统和实现的数字代码 按下的键的未修改值。只读。见文件 KeyboardEvent.keyCode用于细节。
你需要掌握实际角色。关于这个问题有很多问题like this one。
一种方法是使用String.fromCharCode(e.which)
,它适用于大多数浏览器,但仅适用于源自keypress,而不是keydown或keyup处理程序的KeyboardEvents。
keydown和keypress之间的区别
document.body.addEventListener("keydown", function(e) {console.log(e.keyCode)}, false);
219
尽管
document.body.addEventListener("keypress", function(e) {console.log(e.keyCode)}, false);
123