gpt4 book ai didi

javascript - 设置超时并刷新页面/选项卡而不丢失主题标签

转载 作者:行者123 更新时间:2023-12-03 06:49:11 25 4
gpt4 key购买 nike

我是 javascript 新手,自己编写了一个脚本

  • 它在 Chrome 扩展程序内运行。
  • 我正在打开一个网址末尾带有 #script 的网站来启动脚本。
  • 扩展程序会检查 URL 中的 #script,然后执行脚本。
  • 在脚本末尾有一个重新加载 - 当页面重新加载时,脚本将再次运行(无限循环)> 是的,这就是我想要的!

问题:实际脚本完成后,重新加载页面之前应该有 5 秒的超时时间。脚本忽略超时,并且 URL 中的主题标签在重新加载后丢失。由于主题标签消失,循环停止。

我尝试过的:

setTimeout(location.reload(true);}, 5000);



window.setTimeout(location.reload(true);}, 5000);



setTimeout(window.open("https://MyLink.com/#script","_self");}, 5000);

所有这些都会以某种方式立即执行(没有 5 秒中断)并调出没有主题标签(甚至是最后一个)的页面,导致循环停止。

content.js 中的完整代码: (另外在 Pastebin 上: http://pastebin.com/ey32SzBP )

chrome.extension.sendMessage({}, function(response) {
var readyStateCheckInterval = setInterval(function() {
if (document.readyState === "complete") {
clearInterval(readyStateCheckInterval);


if(window.location.hash=="#script") {


var oneKeyOnly = true;


function checkItem() {
var itemsArray = ["Apples", "Bananas", "Oranges", ];
var matchingItems = [];
var x = document.getElementsByClassName("item");
for(var y = 0; y < x.length; y++){
if(itemsArray.indexOf(x[y].getAttribute("data-name")) >= 0){
var id = x[y].getElementsByClassName("item-checkbox")[0].getAttribute("id");
matchingItems.push(id);
}
}
return matchingItems;
}


function randomIntFromInterval(min,max)
{
return Math.floor(Math.random()*(max-min+1)+min);
}

function clickButton(val)
{
var buttons = document.getElementsByTagName('input');
for(var i = 0; i < buttons.length; i++)
{
if(buttons[i].type == 'submit' && buttons[i].value == val)
{
buttons[i].click();
console.log("Trying to withdraw!");
break;
}
}
}

var result = checkItem();
var lengthOfArray = result.length - 1;

if (oneKeyOnly == true) {
var rand = randomIntFromInterval(0,lengthOfArray);
document.getElementById(result[rand]).checked = true
console.log("Found: " + result[rand]);
}
else {

for(index=0, len = result.length; index < len; ++index) {
document.getElementById(result[index]).checked = true
keynr = index + 1;
console.log("Found " + result.length + " fruits - Selected Nr. " + keynr + "!");
}

}
clickButton("Withdraw selected items");

setTimeout(location.reload(true);}, 5000);


}

}
}, 10);
});

如果有任何不清楚的地方,请告诉我!

最佳答案

尝试将 reload 方法包装在匿名函数中,如下所示

setTimeout((function(){location.reload(true)}), 5000);

关于javascript - 设置超时并刷新页面/选项卡而不丢失主题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592616/

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