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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...