我想用javascript在WhatsApp上发送短信?

yas*_*ask 4 javascript jquery web whatsapp

我正在尝试在chrome上发送whatsapp web版本的短信.(www.web.whatsapp.com)

这是代码:

document.getElementsByClassName("input")[1].innerHTML="This message was written via JS script! ";

var input = document.getElementsByClassName("icon btn-icon icon-send");
input[0].click();
Run Code Online (Sandbox Code Playgroud)

但问题是,最初没有文本时输入框如下所示: 在此输入图像描述

只有当我在物理上写一些文字时,它才会改为:

在此输入图像描述

只有现在我的脚本才有效,因为它需要Send text button.

我尝试使用Jquery代码通过以下函数模拟$('.input)的按键:

function pressKey() {
  var e = jQuery.Event("keypress");
  e.which = 32; // # space
  $(".input").trigger(e)[1];
  e.which = 91;
  $(".input").trigger(e)[1];
  e.which = 32; // # space
  $(".input").trigger(e)[1];
  e.which = 32; // # space
  $(".input").trigger(e)[1];

}
Run Code Online (Sandbox Code Playgroud)

它没用.

如何Send text通过脚本获取按钮?

这是屏幕录制:

Rod*_*nho 13

所有选项对我都不起作用.多数民众赞成我所做的.

function sendMessage(message) {
    var evt = new Event('input', {
        bubbles: true
    });

    var input = document.querySelector("div.input");
    input.innerHTML = message;
    input.dispatchEvent(evt);

    document.querySelector(".icon-send").click();
}
Run Code Online (Sandbox Code Playgroud)


小智 8

打开对话时试试这个片段:

function dispatch(target, eventType, char) {
   var evt = document.createEvent("TextEvent");    
   evt.initTextEvent (eventType, true, true, window, char, 0, "en-US");
   target.focus();
   target.dispatchEvent(evt);
}


dispatch(document.querySelector("#compose-input div"), "textInput", "hello!");

function triggerClick() {
  var event = new MouseEvent('click', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });
  document.querySelector(".icon.btn-icon.icon-send").dispatchEvent(event)
}
triggerClick()
Run Code Online (Sandbox Code Playgroud)

  • 这不再有效.还有其他解决方案吗? (3认同)

Luc*_*bbo 5

正如Khalid Lafi所说,这是正确的剧本.他的代码在执行时会返回错误

dispatch(document.querySelector("#compose-input div"), "textInput", "hello!");
Run Code Online (Sandbox Code Playgroud)

这是因为你应该使用"input.div"而不是"#compose-input div".以下脚本对我有用.

function dispatch(target, eventType, char) {
    var evt = document.createEvent("TextEvent");    
    evt.initTextEvent (eventType, true, true, window, char, 0, "en-US");
    target.focus();
    target.dispatchEvent(evt);
}


dispatch(document.querySelector("div.input"), "textInput", "hello!");

function triggerClick() {
var event = new MouseEvent('click', {
  'view': window,
  'bubbles': true,
  'cancelable': true
 });
document.querySelector(".icon.btn-icon.icon-send").dispatchEvent(event);
}

triggerClick();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.