在Chrome和Firefox上捕捉Backspace是不同的

我正在尝试创建一个像应用程序一样的控制台,所以我正在抓住窗口上的所有按键并与它们做相关的事情(不重要)。 问题在于退格。 我有以下代码:

$(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(); } 

但是,在Firefox中, #console内容已删除,但Chrome不会执行上述代码。 我需要一个跨浏览器兼容的解决方案。 我错过了什么?

加成:

如果我使用keydown / keyup而不是keypress,我无法检测到characeter是’A’还是’a’它总是返回’A’。

读这个。 IE不会触发那些特殊键的按键。 也许与其他一些浏览器相同。

Javascript e.keyCode没有在IE中捕获Backspace / Del