我需要在按键事件上获得本地化字符.例如:在捷克键盘上我需要得到不是5个字符(键码53)(见
Czech keyboard layout).有没有其他方法来获得角色,不使用文本输入和阅读价值?换句话说,有什么方法可以从事件对象中获取关于当前用户键盘布局的字符?
- <html>
- <body>
- <script language="JavaScript">
- function onLoad() {
- console.log(document.getElementById("test"));
- document.getElementById("test").onkeydown = function(event) {
- console.log("Code: "+event.keyCode+"; Key: "+String.fromCharCode(event.keyCode));
- }
- }
- </script>
- <body onLoad="onLoad();">
- <input id="test">
- </body>
- </html>
(例online)
当您尝试此代码并按下ř-key时,您将在Firebug控制台中看到“代码:53;密钥:5”.我需要得到“ř”而不是“5”.
我认为这个“问题”出现在所有非英语键盘上.
解决方法
无论键盘布局如何,使用按键事件都可以为您输入字符.
- document.onkeypress = function(evt) {
- evt = evt || window.event;
- var charCode = evt.which || evt.keyCode;
- var charTyped = String.fromCharCode(charCode);
- alert("Character typed: " + charTyped);
- };
这是我通常链接到Jan Wolter的优秀页面,记录了JavaScript密钥处理:http://unixpapa.com/js/key.html