为了学习目的,我试图在Whatsapp (https://web.whatsapp.com/)上发送一条信息,只使用Javascript。
下面是具有消息框的DIV:
<div class="fd365im1 to2l77zo bbv8nyr4 mwp4sxku gfz4du6o ag5g9lrv" contenteditable="true" role="textbox" spellcheck="true" title="Type a message" data-tab="10" data-lexical-editor="true" style="user-select: text; white-space: pre-wrap; word-break: break-word;"><p class="selectable-text copyable-text"><br></p></div>
这是我的密码:
document.getElementsByClassName('fd365im1 to2l77zo bbv8nyr4 mwp4sxku gfz4du6o ag5g9lrv')[0].innerText = 'My message content';
代码运行时没有错误,但是消息字段没有填充,接口上什么也没有发生。这段代码以前经常运行,但现在不再运行了。
我错过了什么?您可以尝试访问whatsapp并使用Chrome。
发布于 2022-07-18 23:28:03
您可以使用
最新情况*
// wait until paste all text
function waitForPastedData(elem, old) {
if (elem.childNodes && elem.childNodes.length == old) {
return true
}
else {
old = elem.childNodes.length
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(waitForPastedData(elem, old));
}, 2000);
});
}
}
async function send_text(text) {
const dataTransfer = new DataTransfer();
dataTransfer.setData('text', text);
const event = new ClipboardEvent('paste', {
clipboardData: dataTransfer,
bubbles: true
});
let el = document.querySelector('#main .copyable-area [contenteditable="true"][role="textbox"]')
el.focus()
// select old text and replace with new
document.execCommand("selectall");
el.dispatchEvent(event)
return await waitForPastedData(el, 0)
}
await send_text('yourtext')
https://stackoverflow.com/questions/73025962
复制相似问题