虚拟键盘弹出文本字段的焦点

Posted

技术标签:

【中文标题】虚拟键盘弹出文本字段的焦点【英文标题】:virtual keyboard popup onfocus of a text field 【发布时间】:2021-07-22 22:46:10 【问题描述】:

编辑:这个壮举是不可能的。从那以后我就放弃了。我不会删除这个问题,而是将其留在此处,以便将来的用户可以看到他们在 google 上查询类似问题的相关结果

目标:要么让textarea 在聚焦时调出虚拟键盘(使用 js),要么让input[type=text] 多行并带上虚拟键盘 (我相信回答了here,但结果并不令人满意。)(如果有人知道完全兼容的方法来多行化input[type=text],请告诉我)

预期结果:聚焦输入或文本区域字段时弹出虚拟键盘(通过没有用户触发的 javascript)。

实际结果:插入符号出现在文本字段中,但键盘仍然看不见。

这是我在 textarea 上尝试的内容:

document.elementFromPoint(document.querySelector("textarea").getBoundingClientRect().x, document.querySelector("textarea").getBoundingClientRect().y).dispatchEvent(click);
请不要对我的代码组织做出无关紧要的 cmets @WaisKamal 你能告诉我你的代码,因为你说它有效吗? html(无 CSS):
<textarea>textarea</textarea>
<input type="text" value="input" />
<script>
//document.elementFromPoint(document.querySelector("textarea").getBoundingClientRect().x, document.querySelector("textarea").getBoundingClientRect().y).dispatchEvent("click");
document.querySelector("input").focus();
document.querySelector("input").click();
</script>

【问题讨论】:

你能详细说明一下没有任何作用吗?没有键盘吗?只有一条线吗?你不能打字吗? 只是没有键盘弹出(在 textarea 上) 如果你使用&lt;input type="text"&gt;,键盘会出现吗? 另外,你能分享一些你的 HTML 和 CSS 吗? @traktor 是的,但这些方法并没有在 textarea 上调出虚拟键盘,而且令人惊讶的是,在 input[type=text] 上也没有 【参考方案1】:

您可以使用inputmode 来确定虚拟键盘的行为方式

<textarea>textarea</textarea>
<input type="text" value="input" inputmode='text'/>
<script>
//document.elementFromPoint(document.querySelector("textarea").getBoundingClientRect().x, document.querySelector("textarea").getBoundingClientRect().y).dispatchEvent("click");
document.querySelector("input").focus();
document.querySelector("input").click();
</script>

编辑

我仍在对此进行测试,它似乎在我目前正在测试的jsfiddle 中给出了一些混合结果,有时有效,有时无效

*编辑 2 *

如果没有指定inputmode,它似乎有相同的结果它在第一次加载页面时不起作用,但如果我点击页面上的某个地方,每次点击运行时它都会起作用。

我在这里只是推测,但似乎在页面没有首先接收一些用户交互的情况下键盘不会弹出,也许这是出于安全原因,但我没有找到任何文档这么说。

至于您的其他问题,您可以提供 div 或其他容器元素 contenteditable 以拥有多行/您想要的任何尺寸。

-

这是另一个问题和对同一问题的一些答案,虽然有点老了,Show virtual keyboard on mobile phones in javascript

-

总而言之,这似乎是不可能的,所以在没有用户交互的情况下显示一个虚拟键盘。

【讨论】:

inputmode 当然对我不起作用

以上是关于虚拟键盘弹出文本字段的焦点的主要内容,如果未能解决你的问题,请参考以下文章

弹出窗口时如何保持文本框的焦点

如何显示被虚拟键盘隐藏的文本字段?

Python Kivy:在文本输入字段中隐藏虚拟键盘

IOS虚拟键盘遮挡页面底部文本框

为输入字段设置值不会影响 Safari 中的虚拟键盘

位于虚拟键盘下方的 iOS 7.1 输入字段强制缩放焦点