javascript - JQuery keyup() keydown() 和 keypress() 不适用于 iPad 和蓝牙键盘

标签 javascript jquery ios ipad bluetooth

我无法在 iPad 上使用 keyup()keydown()keypress() 事件。当我连接无线蓝牙键盘并尝试使用键盘打字时,就会出现问题 - 事件不会触发。我在 iPad (iOS 6.1) 上尝试使用 Safari 和 Chrome。同样的 HTML 在桌面上的 Firefox、Safari、Chrome 等中运行良好。有什么方法可以更改此代码以使其在平板电脑上运行吗?我检查了document.activeElement,似乎是文档正文,这是正确的。

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $(document).keyup(function(event) {
                    document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keyup " + event.which) + "<br>";
                });
                $(document).keydown(function(event) {
                    document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keydown " + event.which) + "<br>";
                });
                $(document).keypress(function(event) {
                    document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keypress " + event.which) + "<br>";
                });
            });
        </script>
    </head>
    <body>
        <div id="output"></div>
    </body>
</html>

最佳答案

显然,在 iOS 上,除非文本字段具有焦点,否则键盘将无法工作,句号
为了解决这个问题,我需要向 HTML 添加一个隐藏文本字段。像这样的事情:

<div style="overflow: hidden; position: relative; width: 1px; height: 1px; left: -500px">
<input id="input" type="textfield" autocorrect="off" autocapitalize="off">
</div>

现在的问题是,JavaScript 中无法自动为 iPad 提供隐藏的输入焦点。因此,我必须添加某种按钮,必须物理单击该按钮才能为隐藏的输入字段提供焦点。请参阅here .

<input type="button" value="Click here first" onclick="document.getElementById('input').focus();">

我讨厌这个。如果有人能找到更好的解决方案,请告诉我。

关于javascript - JQuery keyup() keydown() 和 keypress() 不适用于 iPad 和蓝牙键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296673/

相关文章:

javascript - 为 DOMMouseScroll 事件添加延迟

JavaScript:如何将数据添加到 JSON 文件内的数组

javascript - 在两个 php 文件之间传递值并使用 JavaScript 加载数据

javascript - 获取页面源码

ios - 添加第二个证书时,SecItemAdd 返回 -25299

ios - 如何获取 CGPDFDictionaryRef 键

javascript - 为克隆的表单元素添加唯一的名称

javascript - Jquery:挑选出没有 A 类或 B 类的元素

javascript - SharePoint 和 jQuery 隐藏错误消息

iphone - 从核心数据存储创建 .sqlite 文件?