作者:物业美女_959 | 来源:互联网 | 2022-12-25 19:34
在我的qwerty键盘上的大多数浏览器中,event.key
shift + 2是来自keyup键事件的"@".但是,Edge报道event.key: "2"
.所以我可以放下类似的东西
if(event.key == "2" && event.shiftKey){
//code to execute when "@" key is down
}
哪个用户使用来自德国或匈牙利这样的国家的键盘,或者可能有很多其他用户,并希望我的代码在Edge上键入"@"字符而不是shift + 2,它们会使用其他一些关键组合.
如果某些键盘布局不会从shift + 2生成@字符,如何从Edge中的onKeyUp事件中可靠地检测"@"字符?
有没有办法检测用户正在使用具有备用布局的键盘,并且是否有一些布局列表,我可以从中创建一些可能非常长的switch语句,以映射任何给定组合的"shift + 2"代码键盘布局?
我需要这个在onKeyUp中工作,而不是onKeyDown.
这就是Edge给我带的shift + 2 onkeyup.
[object KeyboardEvent]: {altKey: false, bubbles: true, cancelable: true, cancelBubble: false, charCode: 0...}
altKey: false
bubbles: true
cancelable: true
cancelBubble: false
charCode: 0
ctrlKey: false
currentTarget: Object
defaultPrevented: false
detail: 0
eventPhase: 3
isTrusted: true
key: "2"
keyCode: 50
location: 0
metaKey: false
repeat: false
returnValue: true
shiftKey: true
srcElement: Object
target: Object
timeStamp: 69676.72914431277
type: "keyup"
view: Object
which: 50
__proto__: Object
下面是德国键盘的图像.注意@ char的位置.我不想只支持德语和美语,我想支持任何键盘.
在onKeyUp的Edge上,event.charCode始终为0,即使在尝试键入@时shift键关闭时,event.key也为2,并且event.char始终未定义.使用Edge浏览器将此Codepen视为起始位置:https://codepen.io/glenpierce/pen/QmNQRq?edit = 1111#