以下代码的作用是阻止任何按键事件并将按下的键添加到一个 div 中。在桌面上运行良好,但在移动端(Safari 和 Chrome)中,
event.key
未定义。
以下代码旨在简单地抑制任何按键事件,并将按下的键添加到一个 div 中。这在桌面上可以正常工作,但是在移动设备上(Safari 和 Chrome)event.key
未定义。
<html>
<head></head>
<body>
<input />
<div id="#test"></div>
<script>
var str = '';
var el = document.getElementById('#test');
document.addEventListener('keypress', function(event) {
str += event.key;
event.preventDefault();
el.innerHTML = str;
})
</script>
</body>
</html>
event.keyCode
和event.keyIdentifier
都可以使用,但将它们强制转换为字符串会导致在不同的键盘布局和语言环境下产生意想不到的结果,尤其是对于特殊字符。
有没有一种直接获取按键值的方法?
这里是一个CodePen的示例,以防万一:https://codepen.io/anon/pen/pryYyQ
<div id="#test" />
?至少Safari将其视为没有结束标签的DIV开放标签,因此会纠正错误并将其后面的所有内容放入该DIV中。 - RobG