有些网站,我在下面键入的代码不起作用。例如,我在Bing(搜索引擎)的控制台中键入了代码
var event;
event = document.createEvent('Event');
event.initEvent("keypress", true, true);
event.view = window;
event.keyCode = 13;
event.which = 13;
event.charCode = 13;
event.code = "Enter";
event.key = "Enter";
event.bubbles = true;
并且我已经在搜索栏中输入了一些文本,该元素的ID为“ sb_form_q”,所以
var element = document.getElementById("sb_form_q");
element.dispatchEvent(event);
它将返回true,但实际上什么也没有发生。 我尝试了很多网站,有些可以正常工作,有些不能正常工作,我也不知道为什么。
2018/8/3更新:
我知道为什么某些网页调度“输入”事件不起作用,因为输入不是通过“输入”键提交,而是通过提交或onsubmit事件提交。
答案 0 :(得分:1)
也请找到下面的 Enter
关键字示例。
window.onload = function(){
var ev = document.createEvent('Events');
ev.initEvent('keypress', true, true);
ev.keyCode = 13;
ev.which = 13;
ev.charCode = 13;
ev.key = 'Enter';
ev.code = 'Enter';
var eventReturns = document.querySelector('#input-event').dispatchEvent(ev);
var Inputvalue = document.getElementById('input-event').value;
console.log({isdispatch: eventReturns, value: Inputvalue});
}
<input type="text" id="input-event" value="Hello World" />
答案 1 :(得分:0)
请检查下面的代码是否有效。
function MouseEvent(event) {
var x = document.createEvent("MouseEvent");
x.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
document.getElementById("myDiv").dispatchEvent(x);
console.log(document.getElementById("myDiv").dispatchEvent(x));
}
<div id="myDiv"></div>
<button onclick="MouseEvent(event)">Simulate click</button>