iOS5 Safari:键盘不会隐藏在主屏幕HTML应用中

时间:2011-11-19 17:22:29

标签: javascript jquery ipad ios5

我正在开发一款作为主屏应用程序运行的iPad自定义应用程序,但它是用所有CSS / HTML / Javascript制作的。 (此处未使用SDK)

我遇到了一个问题,我已经在我的页面中内置了一个不隐藏键盘的计算器。无论我做什么,键盘都会翘起来。我对此进行了广泛的搜索并尝试了我能想到的一切,但无论我做什么,键盘都会保持不变。

解释我试图隐藏键盘的内容:

我试图模糊所有输入字段以移除焦点。我已经尝试将焦点设置为非文本字段项。

今年早些时候/去年早些时候Stackoverflow上有几个线程提出了这两个选项,但它们似乎不再起作用了。

为了进一步测试,我在计算器上方的img上放了一个空白的href =“#”,以便我可以将焦点设置在非条目上,看看是否会自动最小化键盘。当我点击键盘上方的那个项目时,焦点会改变,我不再处于输入模式,但是键盘保持不动。

Apple是否通过最新更新破解了此功能?如果是这样,有解决方法吗?

以下是一些不起作用的示例代码:

    $('input').blur(function(e) {
        // Keyboard disappeared
           window.scrollTo(0, 1);
    }); 

该代码成功地从输入中移除焦点,但键盘保持不变。我还试图通过.focus ing非文本元素来反转它。另外,如前所述,我直接在页面上添加了一个非文本元素,但仍然没有隐藏键盘。

非常感谢您的帮助,如果我错误地转发,请随时链接/虐待我。 :)

2 个答案:

答案 0 :(得分:0)

你应该能够通过使用类似的东西来模糊它

$('input').blur();

你应该将它放在你希望它消失的函数/程序中,除非你想要完全禁用它吗?

答案 1 :(得分:0)

try catch块中的

document.activeElement.blur()对我有用。 (可能你还需要一个setTimeout?我不需要超时,重要的是尽可能避免超时,因为它们很容易造成令人讨厌的heisen-bugs!)

另外请仔细检查您是否在mousedown或click事件中的某个地方调用focus()(导致键盘显示)。您可以使用console.log(document.activeElement.tagName);或类似内容来帮助查找当前焦点。

但是,如果你找不到解决方案,那么我非常有兴趣了解你如何让键盘保持稳定...我有一个用途: - )