Javascript 如何转换google chrome';你认为这是合理的吗?
所以我在做一个脚本来捕捉按键。这并不是那么容易,因为似乎没有一个浏览器真正跟随它 在firefox中,我可以在Javascript 如何转换google chrome';你认为这是合理的吗?,javascript,google-chrome,compatibility,Javascript,Google Chrome,Compatibility,所以我在做一个脚本来捕捉按键。这并不是那么容易,因为似乎没有一个浏览器真正跟随它 在firefox中,我可以在keyCode属性中观察键代码(确定特定的物理按钮),而在.charCode中观察字符代码(表示键的字母)。这不是 当我尝试在谷歌浏览器上测试时,我观察到了不同的行为。Google chrome将所有的keyCode、charCode和设置为字母值(如果存在)。但是,keyIdentifier属性中有一个常量值。W3没有提到这样的属性,但我真的很乐意利用它 我如何转换keyIdentif
keyCode
属性中观察键代码(确定特定的物理按钮),而在.charCode
中观察字符代码(表示键的字母)。这不是
当我尝试在谷歌浏览器上测试时,我观察到了不同的行为。Google chrome将所有的keyCode
、charCode
和设置为字母值(如果存在)。但是,keyIdentifier
属性中有一个常量值。W3没有提到这样的属性,但我真的很乐意利用它
我如何转换keyIdentifier
值(对于A it'sU+0041
),使其与Firefox中出现的keyCode
值一致(对于A it's65
)?我还没有处理Firefox或Chrome的键盘事件,但从您发布的示例来看,Chrome等seams为您提供了字母“A”(其中数字部分为十六进制)的Unicode表示形式,而Firefox为您提供了以10为基数的相同数字(十进制)。因此,要使它们彼此一致,只需将Firefox数字转换为十六进制,这样您就可以在两种浏览器中使用Unicode表示法。实际代码是:
//Google chrome retardedness
if(event.keyIdentifier) {
keyCode = parseInt(event.keyIdentifier.substr(2), 16);
}
//not that the other browsers are any closer to something systematic and logical
else {
keyCode = event.keyCode;
}