Из этого источника (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;
);