相关疑难解决方法(0)

iPad Web App:在Safari中使用JavaScript检测虚拟键盘?

我正在为iPad编写一个Web应用程序(不是常规App Store应用程序 - 它是使用HTML,CSS和JavaScript编写的).由于键盘填满了屏幕的大部分,因此在显示键盘时更改应用程序的布局以适应剩余空间是有意义的.但是,我发现无法检测键盘何时或是否显示.

我的第一个想法是假设当文本字段具有焦点时键盘可见.但是,当外接键盘连接到iPad时,当文本字段获得焦点时,虚拟键盘不会显示.

在我的实验中,键盘也没有影响任何DOM元素的高度或滚动高度,我没有发现任何专有事件或属性来指示键盘是否可见.

javascript iphone safari web-applications ipad

143
推荐指数
8
解决办法
11万
查看次数

为什么在我点击之前 window.innerHeight 不正确?铬(安卓)

当我在手机上的 Chrome 中查看此页面时:

<!DOCTYPE html>
<html lang="en-au">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <div style="position:fixed;bottom:0;right:0;background:#f00;width:50px;height:50px">
        </div>
        <div id="output">
        </div>
        <script>

setInterval(() => document.getElementById("output").innerHTML = `windowHeight: ${window.innerHeight}`, 37);

        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

第一次加载时,它看起来像这样:

首次加载时的外观截图

在页面(任何地方)点击一次后,它会更改为:

点击一次后固定外观

从红框中可以看到,这也会影响position:fixed页面上元素的定位。这是我调查的开始,我已经缩减了页面以达到这一点,但无法弄清楚我做错了什么!

这种情况只发生在我的手机上的 Chrome (Android) 上。我还在桌面浏览器的响应式视图中进行了测试,但我无法让它发生。我的手机运行的是 Chrome 版本 111.0.5563.116,手机是华为 Y9 Prime 2019。

它也只发生在新标签上。如果加载页面,点击一次,然后重新加载页面,页面将在重新加载时保持右侧window.innerHeight

我列出了所有这些详细信息,因为我担心这可能是一些奇怪的浏览器错误。这是一个错误吗?有解决方法吗?或者我做错了什么?

html javascript css android google-chrome

14
推荐指数
1
解决办法
1773
查看次数

虚拟键盘覆盖 iOS 上 Safari 中的 html 元素

  1. 可编辑的 html 元素占据屏幕高度的 100%。
  2. 在元素焦点上,虚拟键盘会出现并覆盖 Safari 中的部分元素。

如何通过 CSS/JavaScript 告诉元素采用 100% 可见高度 = 100vh - 键盘高度?

在此输入图像描述

html css safari height ios

9
推荐指数
1
解决办法
7064
查看次数

如何处理iPhone中的关键事件

嗨,我正在开发iphone应用程序,并希望在iphone中处理键盘事件.在Mac中,有一个NSEvent类可以处理键盘和鼠标事件,而在ios(iphone/ipad)中,NSEvent的对应物是UIEvent,它只处理触摸事件.我知道ios API不提供此功能,但我如何处理iphone中的关键事件?任何好的教程或者......开始......

iphone macos objective-c nsevent ios

4
推荐指数
1
解决办法
1万
查看次数