我创建了一个简单的扩展程序,该扩展程序与setTimer一起作为倒数计时使用,它应该不断运行,执行其操作然后重新启动。我将倒数显示为扩展程序的标志文本,现在将其冻结在56:18(倒数从59:59开始-计时器冻结了一次,大约43分钟,所以时间似乎是随机的)他的第一行
我有一个用于更新的侦听器,它将检查徽章文本,如果为空,则启动计时器,否则在控制台中发送消息。如果刷新页面,我当前正在控制台中接收消息
此脚本位于后台脚本中,我尚未使其具有持久性(不知道其用途...),而在使用Excel时,我在后台使用了Chrome。
这是我倒计时的代码:
var DelaiProtect = 5
var Countdowntimer = 60
function Countdown() {
countDownDate = new Date().getTime()+(Countdowntimer*60*1000+5);
var x = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
if(seconds < 10 && seconds >= 0) {
seconds = "0"+Math.floor((distance % (1000 * 60)) / 1000);
}
var BadgeCD = minutes + ":" + seconds;
console.log("Countdown : "+ days + " jours "+hours+":"+minutes+":"+seconds)
chrome.browserAction.setBadgeText({text: String(BadgeCD)});
chrome.browserAction.setBadgeBackgroundColor({color: '#336699'});
chrome.tabs.query({url: 'http://localhost:4848/sense/app/*'}, foundTabs => {
if (foundTabs.length >= 1) {
}
else {
console.log("STOP plus d'onglets QlikSense")
clearInterval(x);
chrome.browserAction.setBadgeText({text: ""});
}
});
var DepuisQd = now - lastUseQlik
if (distance < 1 && DepuisQd > (1000*DelaiProtect*60)) {
clearInterval(x);
chrome.browserAction.setBadgeText({text: "..."});
chrome.tabs.query({url: 'http://localhost:4848/sense/app/*'}, foundTabs => {
if (foundTabs && foundTabs.length) {
foundTabs.forEach(tab => chrome.tabs.reload(tab.id));
console.log("chargement effectué ! "+foundTabs.length)
}
});
Countdown();
}
if (distance < (1000*60*DelaiProtect) && (distance+DepuisQd) < (1000*DelaiProtect*60)) {
var minutes2 = Math.floor((((1000*DelaiProtect*60)-DepuisQd) % (1000 * 60 * 60)) / (1000 * 60));
var seconds2 = Math.floor((((1000*DelaiProtect*60)-DepuisQd) % (1000 * 60)) / 1000);
if(seconds2 < 10 && seconds2 >= 0) {
var seconds2 = "0" + Math.floor((((1000*DelaiProtect*60)-DepuisQd) % (1000 * 60)) / 1000);
}
var BadgeCD2 = minutes2+":"+seconds2;
chrome.browserAction.setBadgeText({text: String(BadgeCD2)});
chrome.browserAction.setBadgeBackgroundColor({color: '#FF0000'});
}
}, 1000);
};
感谢您的帮助,因为我不知道先去哪里看看...