javascript输入事件在谷歌上不起作用

前端之家收集整理的这篇文章主要介绍了javascript输入事件在谷歌上不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试用 javascript模拟’enter’按键以实现自动化.
var script = document.createElement('script');
script.src = 'https://code.jquery.com/jquery-1.10.2.min.js';
script.type = 'text/javascript';
document.body.appendChild(script);
var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;

这是用于设置键事件的代码(我也尝试过keydown和keyup).

搜索Google时,这似乎不起作用.如果我输入一些文本并在输入字段$(“[name = q]”)上触发事件.触发器(e)没有任何反应.

我正在使用谷歌来测试模拟“正确”的输入事件.我希望使用js来自动化skype web客户端.

有谁知道是否可以使用javascript模拟实际的输入按键?我已经看到Selenide的pressEnter()有效,但它使用了webdriver所以也许它不相关.

我也尝试过本机js事件触发

var dispatchKeyboardEvent = function(target,initKeyboradEvent_args) {
  var e = document.createEvent("KeyboardEvents");
  e.initKeyboardEvent.apply(e,Array.prototype.slice.call(arguments,1));
  target.dispatchEvent(e);
};

dispatchKeyboardEvent($("[name=q]"),'keypress',true,null,'h',13,'');

sidenote我知道可以通过调用元素上的.submit()来提交查询,但这不是我所追求的.

解决方法

当您在代码中引用文档时,代码应在dom准备好时执行.

事件触发器代码应该在加载jQuery时执行,因此在script.onload回调中编写代码.

here所述,在将脚本元素附加到document.body之前,以及在将src分配给script元素之前附加回调.

工作演示:jsFiddle

猜你在找的JavaScript相关文章