gpt4 book ai didi

javascript - 异步函数中 window.open() 的多次迭代

转载 作者:行者123 更新时间:2023-11-28 03:07:53 27 4
gpt4 key购买 nike

所以,我正在开发一个简单的机器人来向多个 Whatsapp 联系人发送消息。我在 Whatsapp 网页中注入(inject)以下代码,它非常适合一条消息。然后,当我使用 sendMessageToPhoneList 将其发送到电话号码数组时,它对于第一个消息/迭代工作正常,但下一个消息/迭代给我这个错误:未捕获( promise )TypeError:无法读取 null 的属性“文档”。

function sendMessage(phone, encodedMessage) {

return new Promise(resolve => {
var wppURL, wppPage;

wppURL = "https://web.whatsapp.com/send?phone="+phone+"&text="+encodedMessage;
wppPage = window.open(wppURL);

var send = function() {

var sendButton = wppPage.document.getElementsByClassName("_3M-N-")[0];

if (sendButton) {
sendButton.click();

setTimeout(function() {
wppPage.close();
resolve(true);

}, 10000);

} else {
setTimeout(send, 1000);
}
};

send();
});
}

async function sendMessageToPhoneList(phoneList, encodedMessage) {
for (i=0; i < phoneList.length; i++) {
await sendMessage(phoneList[i], encodedMessage);
}
}

代码有问题吗?有人可以给我一些见解吗?谢谢!

最佳答案

问题是 chrome 会再次打开相同的选项卡,因此即使您打开多个具有相同名称的窗口,并且 chome 也不允许它更改您的代码,以便您有不同的窗口名称,它应该修复它。

例如:

wppURL = "https://web.whatsapp.com/send?phone="+phone+"&text="+encodedMessage;
wppPage = window.open(wppURL, wppURL); // second parameter is for window name

关于javascript - 异步函数中 window.open() 的多次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60441839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com