8

一点上下文:我正在开发一个基于 HTML5 的移动应用程序,该应用程序具有自动完成功能,由于 setSelectionRange 中的错误而在 Android 上中断:http://code.google.com/p/android/issues/detail? id=15245因此,我不能像往常一样直接操作文本字段中的文本。为了解决这个问题,我打算手动触发几个键事件来模拟用户在 android 软键盘上的按键。

我在是否可以以编程方式模拟按键事件中找到的所有解决方案?并且在 JavaScript 中触发键盘事件只是触发事件而不实际创建任何文本输入。

有没有办法使用javascript模拟整个按键事件,包括文本输入?

更新:固定(有点)

我通过为触发器(我们正在使用的包装器)编写一个插件来解决这个问题,该插件在本机级别手动触发 android 键盘事件。它托管在这里:http ://bit.ly/RiJqrM ,如果其他人感兴趣的话。

另一个更新:

进一步的挫败感和随后的测试让我绕了一圈,结果发现上面提到的 android bug 可能有点像红鲱鱼。我的插入符号表现异常的原因实际上可能是由于原生 android 自动完成的某种组合以及 jQuery focus() 在 android 上根本不起作用(无耻的自我提升)的事实:Android JQuery focus() workaround

4

1 回答 1

3

不,大多数浏览器不允许脚本完全模拟按键:您可以触发事件,但相关的浏览器行为(更新输入的值、编辑 contenteditable 元素的内容、移动插入符号等)不会发生.

于 2012-10-24T22:47:40.083 回答