某些浏览器存在问题,例如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并输出"<"或">"。