【发布时间】:2016-12-16 21:06:20
【问题描述】:
我使用onkeydown 事件并从event 对象中读取按下的键:
function test(e) {
e = e || window.e;
var keyCode = e.which || e.keyCode;
alert(keyCode +' -> '+ String.fromCharCode(keyCode));
}
如果用户按下反斜杠键 (\),上面的函数会很奇怪——它总是返回 Ü 而不是 \。 e.keyCode 的值是 220 这意味着一切正常,所以 fromCharCode() 可能是一个问题。
我认为问题在于反斜杠是一个特殊字符。但是如何省略它并为220 代码显示正确的字符?
我在JSFiddle上做了一个活生生的例子。
【问题讨论】:
-
反斜杠的字符代码是
92,而不是220。我也收到了 uml;aut 的报告,但我不知道为什么……('\\'.charCodeAt(0) === 92)。我非常怀疑问题出在fromCharCode上,因为它太旧了,一定有人在某个时候注意到了。所以也许浏览器给了你错误的字符码。 -
查看 Unicode 表,220 为 U(带两个点):utf8-chartable.de/unicode-utf8-table.pl?unicodeinhtml=dec
-
@Justinas,是的,但我也试过这个,当在键盘上按 `` 时,它也会报告我的 charcode 220。这是出乎意料的。
标签: javascript keycode