将onkeydown收集的击键转换为JavaScript中的字符

Chr*_*ian 2 javascript

我尝试将击键转换为chracters.在其他问题中,有人建议使用onkeydown函数,因为onkeypress因不同的字符而被不同地处理.

我不知道如何处理像'''()这样的特殊字符,它们可能在世界各地的不同键盘上有所不同.

Tim*_*own 7

对于具有可打印字符等效项的键,您应该使用该keypress事件,因为您可以从keypress事件中检索字符代码,这通常是不可能的事件keyupkeydown事件.

你需要的事件性质whichkeyCode-几乎所有的浏览器都有一个或两个的这些,虽然IE使用muddies水域keyCode的字符代码,而其他一些浏览器返回(不同的)关键代码.大多数非IE浏览器也有,charCode但似乎所有这些浏览器也有which,所以charCode永远不需要.一个简单的例子:

document.onkeypress = function(evt) {
  evt = evt || window.event;
  var charCode = evt.which || evt.keyCode;
  var charStr = String.fromCharCode(charCode);
  alert(charStr);
};
Run Code Online (Sandbox Code Playgroud)

这是一个有用的参考页面.