【问题标题】:String.fromCharCode on keypress and keydown are returning wrong characters按键和 keydown 上的 String.fromCharCode 返回错误的字符
【发布时间】:2015-07-24 13:57:36
【问题描述】:

我试图捕捉在屏幕上显示之前插入的字符以验证屏幕。查看我的代码

_this.on('keypress keydown',function(e){
    var t = e.target;
    var k = e.which || e.keyCode;
    var c = String.fromCharCode(k);
    console.log(String.fromCharCode(k))
});

例如,如果我输入 ~ 或任何其他标点符号,它会返回非拉丁字符,例如 å。我在 Chromium 上,Ubuntu。

我注意到这些特殊字符会忽略按键,这太可惜了,这就是我也尝试使用 keydown 的原因。但是 keydown 无法检测到正确的字符并将它们转换为斯堪的纳维亚和亚洲字符。

是否有解决方法来获取正确的字符?

【问题讨论】:

    标签: javascript jquery unicode utf-8 keycode


    【解决方案1】:

    查看this wonderful answer 到类似的问题,以及相关的jsfiddle:http://jsfiddle.net/S2dyB/17/

    一个问题是keypresskeydown 事件不可互换。 keypress 用于检索输入的实际字符(因此忽略特殊键),而 keydown 为键盘上的每个键返回唯一字符代码。更糟糕的是,不同的浏览器对每个事件的处理方式略有不同,这使得它变得一团糟。

    看看e.whichkeydownkeypress 之间的变化:http://jsfiddle.net/9TyzP/

    如您所见,它们很少匹配 - 对于许多键,keypress 的显示代码根本没有改变,表明事件没有针对该键触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多