Я создал простое расширение, которое работает как обратный отсчет с помощью setTimer. Предполагается, что оно постоянно работает, выполняет свои действия и затем перезапускает себя.Я отобразил обратный отсчет в виде текста значка моего расширения, и теперь он заморожен в 56:18 (обратный отсчет начинается с 59:59 - таймер остановился один раз раньше, около 43 минут, поэтому время кажется случайным) после завершенияего первая строка
У меня есть слушатель при обновлении, который проверит текст значка и, если он пуст, запустит таймер, в противном случае отправит сообщение в консоль.В настоящее время я получаю сообщения в консоли, если я обновляю страницу
Этот скрипт находится в фоновом режиме Сценарий, я не сделал его постоянным (не знаю, как его использовать ...), и яна заднем плане был Chrome, когда я работал над Excel.
Вот код моего обратного отсчета:
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);
};
Спасибо за вашу помощь, так как я не знаю, где искатьпервый ...