【问题标题】:Text Area / Input fields only get partial text filled in on Samasung s3 in chrome / webview文本区域/输入字段仅在三星 s3 上以 chrome/webview 填充部分文本
【发布时间】:2012-11-14 20:28:06
【问题描述】:
我们在 samsung s3(运行 android 4.0.4)上观察到我们的应用程序存在一个非常奇怪的错误
在文本区域中输入文本时,只会填充每个单词的第一个字符,并且只有在您按下空格或从预测文本中选择一个单词之后。
输入“what the hell ..”将导致在文本区域中输入“w t h”
不同屏幕上的其他文本区域工作正常。
关闭预测文本也解决了这个问题。
以前有人遇到过这个问题吗?
【问题讨论】:
标签:
android
input
webview
textarea
【解决方案1】:
经过进一步调查,我们注意到有问题的文本区域在获得焦点时并没有改变外观 - 我们所有的工作文本字段在单击时都变成了带有橙色边框的方形角字段。
事实证明,android 做了一些奇怪的事情,并在你的输入字段获得焦点时动态地用原生元素替换它们(因此无法使用橙色边框的方形位:()。
踢球者 - 如果您的输入位于具有 css 绝对定位的元素内,则会失败,并且这似乎也会混淆某些形式的键盘输入。将元素(和父元素)设置为使用位置静态可以解决问题。
我们只在 s3 上看到这一点,当预测文本打开时(这是默认设置..),但它可能在其他设备上。
将此归结为 Android 浏览器仍然一团糟..
请注意,使用这个 css hack 来阻止原生元素被替换:
input:focus { -webkit-user-modify: read-write-plaintext-only; }
导致我们所有的文本字段都出现此线程中概述的问题。
【解决方案2】:
我也有这个问题很长一段时间,但发现停止这个故障的关键是每次遇到第一个字符输入问题时关闭键盘设置中的预测文本选项。就个人而言,我喜欢 99% 的时间都使用预测文本,但是某些网页(主要是电子邮件提供商)没有配置为使用预测文本,所以我保持预测文本打开并在遇到时将其关闭我遇到第一个字符输入唯一问题的网页。要打开/关闭它,只需点击键盘上的 cog 按钮和显示预测文本的位置,只需将滑块向左滑动到关闭位置。这将允许输入整个单词,而不是一次只输入 1 个字符。然后,在您完成输入后,您可以再次点击齿轮并重新打开预测文本。