I am trying to make a console like application, so I am catching all the keypress on the window and do related stuff with them(not important). Problem is at backspace. I have the following code:
$(window).bind("keypress",function(e){
var code = e.keyCode || e.which;
if ( code == 8) {
a = $("#console").html();
$("#console").html(a.substring(0,a.length-1));
currentCommand = currentCommand.substring(0,currentCommand.length-1);
e.preventDefault();
}
However, in Firefox, contents of the #console
is deleted but Chrome does not execute the code above. I need a cross-browser compatible solution. What am I missing?
ADDITION:
If I use keydown/keyup instead of keypress, I am unable to detect if the characeter was 'A' or 'a' it always returns 'A'.
Tys
Read this. IE doesn't fire keypress for those special keys. Perhaps it's the same with some of the other browsers.
来源:https://stackoverflow.com/questions/8569138/catching-backspace-on-chrome-firefox-is-different