当移动safari或chrome上的屏幕键盘打开时,是否有任何javascript事件被触发?

时间:2014-11-25 17:16:35

标签: javascript android ios on-screen-keyboard

我尝试对Web应用程序中的屏幕键盘做出反应。不幸的是,有些事情使这一点变得复杂:

首先,应用程序必须在移动平台(平板电脑)和台式机上运行。此外,禁止滚动文档/正文并进一步增加趣味,平板电脑必须使用横向模式。

因此,如果有人选择任何输入字段,屏幕上的键盘会打开并阻挡页面一半的视线,因此某些输入变得不可见,我需要更改它。

不幸的是,似乎根本没有事件被触发,这表明应用程序的一半变得不可见。我已经检查过滚动并调整事件大小,但它们也没有发射。

当然,一旦我确定要在平板电脑上,我总能以某种方式做出反应。可能95%的用户无论如何都不会连接硬件键盘。但是,有没有更清洁的方式?

3 个答案:

答案 0 :(得分:5)

不幸的是,这里的答案很明确:。这里有一些相关问题,还有一些进一步的信息和技巧:

screen styling when virtual keyboard is active

iPad Web App: Detect Virtual Keyboard Using JavaScript in Safari?

Android/iPhone webkit, event triggered on keyboard pop?

答案 1 :(得分:2)

您是否尝试过 焦点 事件?

因此,当键盘出现时,您可以使用类锁定表单(或其他父元素)的最小高度,因此用户可以在选择输入时滚动触摸屏。

我一直在寻找类似的问题,这个技巧解决了我的问题。 =)

答案 2 :(得分:1)

当键盘调整页面大小时,将调用resize事件。在窗口上添加onresize事件处理程序并根据需要调整滚动。