使用虚拟文本区域启用/禁用 Android 虚拟键盘

Posted

技术标签:

【中文标题】使用虚拟文本区域启用/禁用 Android 虚拟键盘【英文标题】:Enable/Disable Android virtual keyboard with dummy textarea 【发布时间】:2014-07-14 14:23:42 【问题描述】:

我想为 jquery 终端提供虚拟键盘,这是我的测试代码:http://terminal.jcubic.pl/android.html 插件代码在这里:http://terminal.jcubic.pl/js/jquery.terminal-src.js(未提交)

有一段时间它正在工作,但它停止了,即使这样我在 textarea 上运行焦点和模糊,键盘也没有出现。光标不在文本区域中。当我在桌面 Chromium 上运行页面时,焦点/模糊工作。

有人知道为什么 textarea 没有焦点吗?

有时光标在里面,但键盘不显示,也没有绿色轮廓。有时它会获得焦点,但随后会变得模糊。仅当我在文本区域内单击时才会显示虚拟键盘。我找不到任何可能导致此问题的代码以及为什么它暂时起作用(但不完全是我想要的)。

我试过了:

$('textarea').blur(function()  return false; );

或者当我点击终端时调用 preventDefault。 (textarea 是我的剪贴板,但我想重用它)。我一直在尝试不同的事情,但没有成功。

【问题讨论】:

【参考方案1】:

我已经解决了这个问题,我发现了关于 andorid 的两件事。您不能延迟触发对 textarea/input 焦点的操作,它需要直接调用(焦点调用堆栈需要指向 html/浏览器本机操作),而且您似乎只能将焦点(触发虚拟键盘)放在本机事件上, (例如你不能专注于负载)。

【讨论】:

以上是关于使用虚拟文本区域启用/禁用 Android 虚拟键盘的主要内容,如果未能解决你的问题,请参考以下文章

虚拟键盘隐藏字段/文本区域/内容可编辑(隐藏在键盘下方)

JScrollPane 用箭头键滚动

禁用 HTML 文本区域中的换行符

在 Dijit 简单文本区域上禁用调整大小?

使用 jQuery,我如何强制访问者滚动到文本区域的底部以启用提交按钮?

Javafx 文本区域禁用滚动条