Фоновый скрипт не сохраняется в течение всего срока действия расширения - PullRequest
0 голосов
/ 25 мая 2019

Из этого источника (https://medium.com/@vanessajimenez_85032/chrome-extensions-content-scripts-vs-background-scripts-7bbd01f9dbe6):

"Постоянная фоновая страница существует в течение всего срока службы расширения, и только один ее экземпляр активно работает в фоновом режиме браузера Chrome, ожидая, пока пользователь не будет взаимодействовать с расширением"

У меня есть догадка, что я неправильно понял, что это значит; В настоящее время я пишу расширение, которое использует таймер в моем background.js, но таймер не сохраняется в разных (НЕЗАВИСИМЫХ) хромированных окнах. Если у меня есть таймер, работающий с одним окном и открывающий другое, мое расширение в обоих окнах будет иметь одинаковый ход выполнения таймера - однако, если я закрою все окна Chrome и открою новое, мой таймер перезапустится в 00:00. Я хочу, чтобы мой таймер сохранялся во всех без исключения окнах Chrome: фоновые сценарии на самом деле не работают так?

Вот мой код на случай, если я допустил программную ошибку:

manifest.json

{
  "manifest_version": 2,
  "name": "Drill Sergeant",
  "description": "Tracks time spent on 'watchlist' websites",
  "version": "1.0.0",
  "browser_action": {
    "default_popup": "popup.html"
  },
  "background": {"scripts": ["background.js"]},
  "web_accessible_resources": ["background.js"],
  "permissions": ["activeTab", "webNavigation", "notifications", "tabs"]
}

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab)
{
       var timer = setInterval(countDown, 1000);
});

var timeCount =
{
  duration:timeOut,
  text: "OK"
}
function countDown()
{
    timeCount.duration--;
    chrome.runtime.sendMessage(timeCount);
}

popup.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        var min, sec;
        var minStr, secStr;
        min = Math.floor(request.duration/60);
        sec = request.duration % 60;

        document.getElementById("timer").innerHTML = minStr + ":" + secStr;

);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...