微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/js/157549.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐