gpt4 book ai didi

javascript - 检测何时由 Android 浏览器的屏幕键盘触发调整大小事件

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:51 24 4
gpt4 key购买 nike

我有一个表单,它使用调整大小事件来保持布局与浏览器视口(viewport)的大小成比例。我遇到的问题是当屏幕键盘出现在 Android 浏览器上时事件会触发。这会导致表单的布局发生变化,因此输入字段会在浏览器聚焦于它之后移动。这使我的应用程序无法在 Android 上使用。这不是 IOS 的问题,因为屏幕键盘似乎是一个不会触发调整大小事件的覆盖层。

有没有办法检测到调整大小事件是由键盘的出现引发的?

最佳答案

好的,这是针对 html5(浏览器)应用程序的修复。

var isKeyboardOpen = false;

// Override onresize event if you have it already just insert code
// also you can check id of element or any other parameters
if (document.activeElement.tagName == "INPUT" ||
document.activeElement.tagName == "input") {

// regular onresize
// Indicate normal resize

}
else {
// We know that element who opens keyboard is in 'focus'
// avoid resize
}

// To check is it keyboard open use this code

window.addEventListener('native.showkeyboard', keyboardShowHandler);

window.addEventListener('native.hidekeyboard', keyboardHideHandler);

function keyboardShowHandler(e){
isKeyboardOpen = true; //always know status
}

function keyboardHideHandler(e){
isKeyboardOpen = false;
}

最初尝试通过设置标志来阻止:

var object = document.getElementById("IwillOpenKeyboardOnMobile");
object.addEventListener("focus", ONFOCUSELEMENT);

function ONFOCUSELEMENT() {
isKeyboardOpen = true;
}

// opposite event is blur

关于javascript - 检测何时由 Android 浏览器的屏幕键盘触发调整大小事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com