gpt4 book ai didi

javascript - 无法更改变量值javascript

转载 作者:行者123 更新时间:2023-11-30 11:44:41 27 4
gpt4 key购买 nike

所以我正在编写一个脚本,该脚本将保存一个人在 whatsapp 上(在 whatsapp 网络上)在线的每一秒

我有这个:

//add zeros (run only once)
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}

//Inject jQuery (run only once)
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);

// make online log
//start
var online = "yes";
var onlineCheck1 = window.setInterval(function() {
var x = $('#main>header>div.chat-body>div.chat-status>span').text()
var name = $('#main>header>div.chat-body>div.chat-main>.chat-title>span').text()
var d = new Date();
if (x == "online") {
var online = "yes";
console.log(d.toLocaleDateString('en-GB') + "|" + addZero(d.getHours()) + ":" + addZero(d.getMinutes()) + ":" + addZero(d.getSeconds()) + " " + name + " " + "was" + " " + "///online///");
} else if (online == "yes") {
console.log("<------------>")
var online = "no";
} else {
var online = "no";
}

}, 1000); //end

它会在有人在线时进行记录,但我希望它在该人离线时只做一个标记 (<------------>),但它没有这样做。

所以我想让这个脚本做的是:
使变量“online”的值为“yes”
然后使变量“x”的值为元素的内部文本(哪个在线或上次上线.....)
然后查看x 是否在线?然后将“online”的值更改为“yes”记录日期和时间
如果不是并且变量“online”的值为“yes”?然后打个记号(<------------>),把“online”的值改成“no”
如果不行?然后只需将变量“online”的值更改为“no”并重复。
我不知道出了什么问题,但可能是由于某种原因变量没有改变。

注意:我正在使用 chrome 的控制台在 web.whatsapp.com 上运行此脚本,因此如果您想了解我的意思,您可以尝试一下。

最佳答案

首先,您的代码看起来有些脏 - 将函数从 setInterval 中移除。

其次,如果在代码开头注入(inject)的来自google的Jquery脚本卡住了,调用时没有定义$怎么办?

然后,使用 setTimeout 并递归调用它而不是 setInterval。

至于你的变量“online”——你在你的函数中使用了“var”,所以“var online”是在你的 anon 中创建的。函数的范围和外部“var online”不受您的操作影响。尝试删除匿名中的“var”字样。 setInterval 中的函数。

关于javascript - 无法更改变量值javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41403506/

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