Сценарий содержимого выгружается, если страница не посещается в течение длительного времени - PullRequest
0 голосов
/ 12 марта 2020

Я работаю над расширением браузера, которое должно работать постоянно, даже после автоматического c refre sh в фоновом режиме. Проблема в том, что страница автоматически выгружается случайным образом, а скрипт просто отключается. Мне нужно найти способ постоянно поддерживать скрипт контента. Вот часть кода:

// content.js:
    function run(fn) {
      if(typeof(Worker) !== "undefined") {
        if(typeof(w) == "undefined") {
          w = new Worker(URL.createObjectURL(new Blob(['('+fn+')()'])));
        }
        w.onmessage = function(event) {
          if (isNaN(grabbedmin) && ID) {
            bump() // Note: the bump function refreshes in the page.
            w.terminate();
          }
          if ($("[href='/server/bump/" + ID + "']").text().includes("Bump")) {
            bump()
            w.terminate();
          }
          document.getElementById("bumpcount").innerHTML = "Autobumper Enabled: " + getCurrentTimestamp();
          if (numberwow == grabbedmin) {
            bump()
            w.terminate();
          }
        };
      }
    }

Приведенный выше код в основном запускается этим рабочим каждую минуту:

// content.js:
    const worker = run(function() {

      var i = 0;

      function timedCount() {
        i = i + 1;
        postMessage(i);
        setTimeout(function(){timedCount()},1000);
      }

      timedCount();
    });

Есть ли способ для фона. js для обнаружения этого контента . js не работает (или страница выгружена), когда она должна быть, а затем перезагрузить ее?

Примечание. Сценарий можно найти здесь: https://github.com/Theblockbuster1/disboard-auto-bump

1 Ответ

0 голосов
/ 12 марта 2020

После просмотра документов и просмотра примеров я соединил это:

chrome.tabs.query({
  url: ["*://disboard.org/*dashboard/servers", "*://disboard.org/*dashboard/servers/"] // finds matching tabs
}, function(tabs) {
  tabs.forEach(tab => {
    chrome.tabs.update(tab.id,{autoDiscardable:false});
  });
});

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  // checks if the browser automatically re-enabled autoDiscarding and disables it
  if (changeInfo.autoDiscardable == true) chrome.tabs.update(tabId,{autoDiscardable:false});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...