Javascript JQuery应用程序中的假键盘事件和捕捉监视键盘按下 问题
我正在尝试用Chrome扩展来扩展web应用程序。现在,我需要自动化webapp中的一个步骤。在该步骤中,web应用程序有一个禁用的按钮,并要求输入特定的字符串。我可以使用以下方法输入字符串:Javascript JQuery应用程序中的假键盘事件和捕捉监视键盘按下 问题,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在尝试用Chrome扩展来扩展web应用程序。现在,我需要自动化webapp中的一个步骤。在该步骤中,web应用程序有一个禁用的按钮,并要求输入特定的字符串。我可以使用以下方法输入字符串: //假设输入元素在输入变量中。 input.value=“必需字符串” 它不启用该按钮。仅当我手动在输入框中键入时,才会执行此操作。我尝试过调试,应用程序正在使用jQuery监视keyup事件。现在,它没有被启用是有意义的,因为该事件没有被触发 我试过什么? 我尝试使用以下方法来模拟键盘事件: inpu
//假设输入元素在输入变量中。
input.value=“必需字符串”
它不启用该按钮。仅当我手动在输入框中键入时,才会执行此操作。我尝试过调试,应用程序正在使用jQuery监视keyup
事件。现在,它没有被启用是有意义的,因为该事件没有被触发
我试过什么?
我尝试使用以下方法来模拟键盘事件:
input.dispatchEvent(新键盘事件('keyup',{'key':'key_HERE'}));
但它不会被输入捕获,按钮仍处于禁用状态。我还尝试了input.focus()
和input.select()
等方法来提高焦点,因为我在一些地方发现了这一点。但这也不起作用
我不确定我在这里遗漏了什么,或者这是否可能。以以下方式发送按键
input.dispatchEvent(新键盘事件('keyup',{'key':'key_HERE'}));
或者使用@wOxxOm所描述的execCommand
,不会分派在
标记中物理键入内容时发生的所有事件
因此,如果您有一个类似的用例,您需要找出应用程序正在监视/捕获的事件,并单独分派该事件。对我来说,在简单地设置值之后发送一个change
事件对我有效
input.value=“必需字符串”;
input.dispatchEvent(
新事件(“变更”{
泡泡:是的,
可取消:对,
}))
input
event是另一个常用的事件。Try@wOxxOm我刚试过。它不起作用。假设您按照答案所示正确操作,唯一的其他方法是在devtools中检查/调试页面脚本,看看它是否还需要一些其他事件,如focus
等等。@wOxxOm我已经用您的代码创建了一个快速沙盒,还向事件添加了侦听器。显然,它们不是通过使用execCommand
命令触发的。关于调试脚本,我想它们已经缩小了,我无法检查它们。唯一的方法是点击并试用。是的,其中一个“智能”应用程序。。。我猜您将不得不使用初始方法,但应初始化更多字段,例如使用键代码的,keyCode
,可能还有其他字段。