javascript - 在 Javascript 中精确模拟用户的按键

标签 javascript android events keyboard trigger.io

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

我在 Is it possible to simulate key press events programmatically? 中找到的所有解决方案和 Firing a Keyboard Event in JavaScript只是触发事件而不实际创建任何文本输入。

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

更新:已修复(某种程度上)

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

另一个更新:

进一步的挫折和随后的测试让我转了一圈,结果证明上面提到的 android 错误可能有点转移注意力。我的插入符行为异常的原因实际上可能是由于 native android 自动完成的某种组合以及 jQuery focus() 在 android 上根本不起作用的事实(无耻的 self 提升):Android JQuery focus() workaround

最佳答案

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

关于javascript - 在 Javascript 中精确模拟用户的按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057441/

相关文章:

javascript - 在 Jquery 函数中包含 html 代码

javascript - 使用 clipboard.js 复制表格行

javascript - jQuery - 通过数据将变量传递给事件

android - 使用 XMPP 与移动应用进行频繁通信

javascript - onfullscreenchange DOM 事件

javascript - Backbone .remove() 和 .unbind() 不会杀死僵尸,而是创造更多僵尸

android - 无法使用 admob 中介检索困惑广告

android - 世博打造EAS——

javascript - PhoneGap 用户定义的 native 事件

c# - 有没有类似于 Silverlight 的 AutomationFactory for .NET 的类?