某些浏览器存在问题,例如Firefox。
代码:
$(document).ready(function(){
$(this).keydown(function(e){ // Or keyup or keypress
alert(***look at output***);
}
}
当键入非拉丁字符为“<” - “б” - “Б”(俄语)显示:
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
问题: 在不使用keypress的情况下识别所有浏览器中的keydown处理程序(因为不同的键盘布局上有不同的charCodes)。
答案 0 :(得分:0)
解决了,但是有按键。通过监听firefox bug专用的按键手柄,当用西里尔语键盘布局不起作用“<”,“>”。
解决方案:按键盘按钮我们同时听keydown和keypress handels。如果按下西里尔字符,则firefox keyCode输出为0,keydown忽略它。另一方面,keypress采用keyCode == 0并输出“<”或“>”。