在Chrome上发送输入javascript
有人知道为什么我第二次运行代码时它才起作用吗在Chrome上发送输入javascript,javascript,google-chrome,Javascript,Google Chrome,有人知道为什么我第二次运行代码时它才起作用吗 ThisElement = document.querySelector("#side > div._1Ra05 > div > label > div > div._1awRl.copyable-text.selectable-text"); ThisElement.innerText = 'message'; var focusEvent = new FocusEvent('focus', {
ThisElement = document.querySelector("#side > div._1Ra05 > div > label > div > div._1awRl.copyable-text.selectable-text");
ThisElement.innerText = 'message';
var focusEvent = new FocusEvent('focus', {
bubbles: false,
cancelBubble: false,
cancelable: false,
composed: true,
currentTarget: null,
defaultPrevented: false,
detail: 0,
eventPhase: 0,
isTrusted: true,
});
ThisElement.dispatchEvent(focusEvent);
代码只是在搜索框中发送一条消息
我正在使用DevTools控制台(F12)在chrome上测试它。问题在于用于设计whatsapp web的React JS,因此要管理它,您可以在setTimeout中再次调用事件 这一问题背后的原因: 在第一个事件触发时,whatsapp web屏幕将释放应用程序屏幕上的所有集中输入,因此需要再次触发事件以刺激浏览器中的人类行为
function searchContact(contact_name = "") {
search = document.querySelector('#side > div._1Ra05 > div > label > div > div._1awRl.copyable-text.selectable-text');
var focusEvent = new FocusEvent('focus', {
bubbles: true,
cancelBubble: false,
cancelable: true,
composed: true,
currentTarget: null,
defaultPrevented: false,
detail: 0,
eventPhase: 0,
isTrusted: true,
});
//Enter value in search box events
var inputEvent = new InputEvent('input', {
bubbles: true
});
search.textContent = contact_name;
search.dispatchEvent(focusEvent);
search.dispatchEvent(inputEvent);
setTimeout(function() {
search.textContent = contact_name;
search.dispatchEvent(focusEvent);
search.dispatchEvent(inputEvent);
el = document.querySelector("#side > div._1Ra05 > div > label > div > div._1awRl.copyable-text.selectable-text");
var event = new KeyboardEvent('keydown', {
code: 'Enter',
key: 'Enter',
keyCode: 13,
view: window,
bubbles: true
});
el.dispatchEvent(event);
}, 1000)
}
searchContact("name");
function triggerMouseEvent(el, etype) {
console.log(el)
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent(etype, true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
el.dispatchEvent(evt);
}
我认为你是第一个以youtube视频形式展示代码的人。;-)最好是通过将代码包装到iternal脚本编辑器中来创建一个最小的可运行示例。它一开始就奏效了attempt@Master.Deep在哪个页面和哪个浏览器中?我在网络whatsapp上打交道,我上传了一个更好的视频,如果你们能检查一下的话。我在一些随机页面和chrome工具栏上试过