我需要检测用户何时在键盘上选择字母 ]
KeyCode: 221 并在 dom 上返回字母 ]
。
我的问题是:
如果事件是从 input
元素或 document
返回的,则 event.keyCode
返回的值会有所不同。
还有
在 Chrome 版本 55.0 上测试以下问题
我得到的输入: event.keyCode: 93 - String.fromCharCode: ]
我得到的文档: event.keyCode: 221 - String.fromCharCode: Ý
以及 Firefox 50.1.0
我得到的输入: event.keyCode: 0 - String.fromCharCode:
我得到的文档: event.keyCode: 221 - String.fromCharCode: Ý
我需要知道:
- 我的代码有什么问题?
- 如何以一致的方式获得相同的值?
注释:我使用的是 ENG 美国国际键盘(这可能相关吗?)。
var input = document.getElementById('input');
var result = document.getElementById('result');
input.addEventListener('keypress', function(event) {
result.innerHTML = `event.keyCode: ${event.keyCode} - String.fromCharCode: ${String.fromCharCode(event.keyCode)}`;
});
var resultDocument = document.getElementById('resultDocument');
document.addEventListener('keydown', function(event){
resultDocument.innerHTML = `event.keyCode: ${event.keyCode} - String.fromCharCode: ${String.fromCharCode(event.keyCode)}`;
});
<input id="input" type="text" size="40">
<div id="result"></div>
<h1>On document</h1>
<div id="resultDocument"></div>
最佳答案
Event.keyCode 已弃用,inconsistent跨浏览器,请使用 Event.key(如果可用)。如果没有,最好的选择是使用类似 Keypress 的库。 。 jQuery 也可以。
关于javascript - 检测keyCode问题错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302136/