对于keyup,keydown和keypress,在移动浏览器中未定义event.key

问题描述 投票:7回答:2

以下代码应该简单地禁止任何按键并将按下的键添加到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都可用,但是将它们转换为字符串会在不同的键盘布局和语言上给出不必要的结果,特别是对于特殊字符。

无论如何直接获得密钥的价值?

这是一个代码示例,以防万一:https://codepen.io/anon/pen/pryYyQ

javascript mobile-safari keylistener chrome-mobile
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.