倒计时定时器工作停止在chrome扩展

Countdown timer working stop on chrome extensions.

本文关键字:chrome 扩展 定时器 工作 倒计时      更新时间:2023-09-26

我想我会建立chrome扩展倒数。在当前代码的情况下,如果关闭pop .html,处理将强制完成。在这种情况下,写setInterval到background.js是不是更好?此外,我希望你教我具体应该做什么。

background.js

var num = window.localStorage.setItem("minite_num", 20);
default_count = num*60;
function count_start() {
    count = default_count;
    chrome.browserAction.setIcon({
        path: {
            "19": "img/icon_count19.png",
            "38": "img/icon_count38.png"
        }
    });
}
function count_down() {
count--;
if (count <= 0) {
    page_change();
    count_stop();
    }
}

popup.js

var bg = chrome.extension.getBackgroundPage();
var num = bg.num;
var start_btn = document.count_timer.start_btn;
var count_time = document.getElementById("counter");
document.addEventListener('DOMContentLoaded', function () {
    load();
    start_btn.addEventListener('click', start_display);
});
function timer_reset() {
    timerID = 0;
}
function count_format(num) {
    var tm,ts;
    tm = Math.floor(num / 60); //分
    ts = num % 60; //秒
    if (ts < 10) ts = "0" + ts;
    return tm + ":" + ts;
}
function load(){
    display_num = bg.count_format(bg.default_count);
    bg.timer_reset();
    start_btn.disabled = false;
    count_time.innerHTML = display_num;
}
function start_display() {
    start_btn.disabled = true;
    bg.count_start();
    timerID = setInterval(function() {bg.count_down();count_time.innerHTML = bg.count;}, 1000);
}

popup.html

<form name="count_timer" class="count_timer">
    <div id="counter" class="counter"></div>
    <input type="button" name="start_btn" value="START">
</form>

谢谢。

使用chrome存储/localStorage来记住您的目标时间。使用从弹出的间隔来更新您的计算。第一次,弹出需要从存储中读取并确定倒计时的位置。没有什么需要从后台完成,除非你想要分离逻辑(如MVC),然后可能从后台做所有存储的东西,并要求它与消息传递。我有一个发布的开源chrome扩展(加上trello)与计数(向上)定时器功能,做类似的事情。