gpt4 book ai didi

javascript - event.key 在移动浏览器中对于 keyup、keydown 和 keypress 是未定义的

转载 作者:数据小太阳 更新时间:2023-10-29 04:13:15 25 4
gpt4 key购买 nike

下面的代码应该简单地抑制任何按键并将按下的键添加到一个 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.keyCodeevent.keyIdentifier 都可用,但将它们转换为字符串会在不同的键盘布局和语言上产生不需要的结果,尤其是对于特殊字符。

有没有办法直接获取key的值?

这里有一个代码笔示例以防万一:https://codepen.io/anon/pen/pryYyQ

最佳答案

唯一的解决方法是获取键码并将其转换为字符串:

var str = '';
var el = document.getElementById('#test');
document.addEventListener('keypress', function(event) {
const currentCode = event.which || event.code;
let currentKey = event.key;
if (!currentKey) {
currentKey = String.fromCharCode(currentCode);
}
str += currentKey;
event.preventDefault();
el.innerHTML = str;
})

关于javascript - event.key 在移动浏览器中对于 keyup、keydown 和 keypress 是未定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com