通过按下键识别非拉丁字符



某些浏览器存在问题,例如Firefox。

代码:

$(document).ready(function(){
     $(this).keydown(function(e){         // Or keyup or keypress
          alert(***look at output***);
     }
}

输入非拉丁字符如"<"-" tweet "-"Б"(俄文)显示:

keydown    keyCode=0 which=0 charCode=0
keypress   keyCode=0 which=1073 charCode=1073 char=б
keyup      keyCode=0 which=0 charCode=0 

相同的字符在Chrome显示:

keydown    keyCode=188 which=188 charCode=0
keypress   keyCode=1073 which=1073 charCode=1073 char=б
keyup      keyCode=188 which=188 charCode=0

问题:在所有浏览器中识别keydown处理程序,而不使用按键(因为不同键盘布局上的不同charCodes)。

解决了,但需要按键。通过监听按键处理特殊的firefox错误,当使用西里尔字母键盘布局时不工作"<",">"。

解决方案:在按下键盘按钮时,我们同时听到keydown和keypress手柄。如果按下的firefoxkeycode输出为0,keydown忽略它。另一方面,keypress接受keyCode == 0并输出"<"或">"。

相关内容

  • 没有找到相关文章

最新更新