【问题标题】:How to stop soft keyboard resizing Chrome browser window on Android mobiles?如何停止在 Android 手机上调整 Chrome 浏览器窗口大小的软键盘?
【发布时间】:2019-02-22 09:04:26
【问题描述】:

我看到有人问过这个问题 here、here 和 here,但找不到明确和/或可行的答案。我在三星 A7 (2018) 上使用 Android 9,运行 Chrome 75。

会发生什么。 我有一个需要键盘输入的 html 表单。在 Chrome 中打开并尝试输入时,键盘会强制调整表单大小。调整大小将表单减小到屏幕高度的 50% 左右,并调整表单宽度和输入字段的宽度/高度。在关闭键盘并且表单恢复正常大小之前,输入的任何文本都是不可见的。在 Firefox Focus 中不会发生大小调整 - 键盘向上滑动并越过表单的下半部分,使表单保持 100% 大小。

2019 年更新 - 解决方案! 我在a question here中找到了关于 Chrome 的问题的答案,关于同样的问题,但在 Firefox 中(这不再是问题,至少现在在 Firefox Focus 9 中不是)。

【问题讨论】:

  • 基本上,如果 bot 不可能,因为调整大小不是在 html 层而是在应用层发生,所以这有点困难。这意味着每个浏览器的行为可能会有所不同,甚至会随着时间的推移而改变行为。

标签: android html google-chrome android-softkeyboard


【解决方案1】:

单独固定高度应该可以。下面的代码没有使用 jQuery。

setTimeout(()=>
   document.querySelector("meta[name=viewport]").setAttribute("content", "height=" + screen.height*0.9 + "px, width=device-width, initial-scale=1.0")
, 300);

我需要降低高度以适应我的情况。

【讨论】:

    【解决方案2】:

    这是一个软键盘更改视口高度的 Android 问题...目前正在处理相同的问题...这看起来很有希望,即将实现...它将视口内容设置为显式 px 值

    setTimeout(function () {
        var viewheight = $(window).height();
        var viewwidth = $(window).width();
        var viewport = $("meta[name=viewport]");
        viewport.attr("content", "height=" + viewheight + "px, width=" + 
        viewwidth + "px, initial-scale=1.0");
    }, 300);
    

    编辑:像魅力一样工作

    【讨论】:

    • 在我的 Galaxy A7 上,Firefox Focus 不再调整视口大小,但 Chrome 仍然可以。因此,我尝试了您的解决方案,但没有任何区别,并且 javascript 验证器在其中发现了许多“未定义”错误。所以也许我不理解它 - 你的脚本在 html 中的哪个位置? '300' 是 px 的固定高度吗?宽度呢?我通常只是复制/调整/粘贴 javascript 而对它了解不多。
    • @plugincontainer sn-p 末尾的 300 表示在运行前等待 3/10 秒(300 毫秒)(查找 setTimeout)宽度和高度正在使用 var viewheight 设置/var 视图宽度。确保删除缓存并在文档底部调用 javascript
    • 将 javascript 放在 html 的末尾,清除缓存但在 Chrome 中仍然没有运气,表单仍然重新调整大小。无论有没有脚本,在 Firefox Focus 或(三星)互联网浏览器中都无需调整大小
    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 2015-04-20
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多