【发布时间】:2018-09-23 01:14:14
【问题描述】:
我正在编写一个脚本,该脚本按下添加到购物车按钮,然后等待购物车项目数 = 当前项目数
现在,即使在 if 语句变为 false 之后,我似乎也无法摆脱我添加的 if 语句。
这是我尝试过的:
$("#add-remove-buttons :input")[0].click();
let cart_count = $("#items-count").text();
if (cart_count !== `${request} items`){
setInterval(function() {
let cart_count = $("#items-count").text();
console.log(cart_count, `${request} items`);
}, 50);
}
if (cart_count == `${request} items`) {
chrome.runtime.sendMessage({finished:"done_after1"});
}
这是控制台中的结果:
正如您可以告诉它的那样,控制台记录了 1 项 2 项,然后它转到 2 项 2 项,这就是它应该停止并发送消息的时间。但由于某种原因,它一直在控制台记录
我也试过这段代码:
$("#add-remove-buttons :input")[0].click();
let cart_count = $("#items-count").text();
while (cart_count !== `${request} items`){
let cart_count = $("#items-count").text();
console.log(cart_count, `${request} items`);
}
chrome.runtime.sendMessage({finished:"done_after1"});
所以它应该在while循环不再为真之后退出while循环。但是由于某种原因,当我测试这个页面时,页面只是冻结了,我什至无法右键单击来检查控制台。由于某种原因,当我尝试这个 while 循环时,页面总是冻结。
如果有人知道这里出了什么问题,如果您能通过告诉我问题来帮助我,我将不胜感激。谢谢你!
【问题讨论】:
-
presses a add to cart button then waits until the cart item count = the current item count- 所以它应该一直按添加到购物车直到数字匹配?似乎您的代码只按下按钮一次 - 所以如果按下不能使它们匹配,它们永远不会
标签: javascript jquery google-chrome-extension sendmessage content-script