簡體   English   中英

增量與其余部分不起作用

[英]Increment with remainder not working

在我的腳本中,計算機單擊WhatsApp Web中的聯系人選項卡,然后每次檢查該人是否在線。 這是通過一個循環完成的,當到達觸點號16時,該循環再次開始。 無論如何,循環不起作用,變量“ i”也不會增加。 這很奇怪,因為如果我用console.log替換selectContact( ${i} ),那么增量就可以了。 也許${}阻止i更新?

var i = 1
setInterval(function () {
    selectContact(`${i}`)

    if (document.getElementsByClassName("O90ur")[0] !== undefined) {
    var online = document.getElementsByClassName("O90ur")[0].innerHTML
        if (online == "online") {
        console.log(`${i}`)};
                        }
    i = i % 16 + 1
}, 1000);

如果問題應在此處,則這是selectContact的代碼。

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);

contacts = [];
chat_div = [];

function triggerMouseEvent(node, eventType) {
    var event = document.createEvent('MouseEvents');
    event.initEvent(eventType, true, true);
    node.dispatchEvent(event);
}

function getChatname(){
    $("#pane-side > div > div > div").find("._2FBdJ >    div._25Ooe").each(function(){ 
        contacts.push($(this).text());
        chat_div.push($(this));
    })  
}

function selectContact(name){
    getChatname()
    for (i = 0; i < contacts.length; i++){
        if (name.toUpperCase() === contacts[i].toUpperCase()){
             triggerMouseEvent(chat_div[i][0],"mousedown")
        }
    }
}

您已經錯過了在var循環中聲明ivar語句,這意味着它會覆蓋全局i

function selectContact(name){
    getChatname()
    for (var i = 0; i < contacts.length; i++){
        if (name.toUpperCase() === contacts[i].toUpperCase()){
             triggerMouseEvent(chat_div[i][0],"mousedown")
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM