热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在任何键盘上检测Edge中的@characteronKeyUp

如何解决《在任何键盘上检测Edge中的@characteronKeyUp》经验,求助如何解决?

在我的qwerty键盘上的大多数浏览器中,event.keyshift + 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#


推荐阅读
author-avatar
物业美女_959
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有