【问题标题】:Catching Backspace on Chrome & Firefox is Different在 Chrome 和 Firefox 上捕捉退格键是不同的
【发布时间】:2012-01-24 01:03:32
【问题描述】:

我正在尝试制作一个类似控制台的应用程序,所以我正在捕捉窗口上的所有按键并用它们做相关的事情(不重要)。问题在于退格。我有以下代码:

$(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,我无法检测字符是“A”还是“a”,它总是返回“A”。

【问题讨论】:

标签: jquery firefox google-chrome keypress backspace


【解决方案1】:

阅读本文。 IE 不会为这些特殊键触发按键。也许其他一些浏览器也是如此。

Javascript e.keyCode doesn't catch Backspace/Del in IE

【讨论】:

  • 如果我制作:$(window).bind("keydown",function(e){ var code = e.keyCode || e.which; console.log(code); 它总是让我使用大写字符,例如无论我按 A 还是按 a,它总是 65
  • 或许你可以试试看是否按下了SHIFT键?就像在这个线程中解释的那样:stackoverflow.com/questions/3125727/…
  • 不,我确定没有按下 SHIFT
猜你喜欢
  • 2023-03-22
  • 2015-03-31
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多