У меня есть расширение поворота вкладки. Просто переключается на следующую вкладку каждые несколько секунд (настраивается, называется interval
/ newInterval
). Когда я загружаю распакованное расширение, все работает нормально, но когда я тестирую расширение упаковки, функция перезагрузки не срабатывает. Я очищаю интервал и перезагружаю расширение. onInstalled.addListener
срабатывает с распакованным расширением, когда я звоню runtime.reload()
, но не с упакованной версией. Есть идеи?
// revolutionOptions.js (скрипт параметров расширения)
intervalSaveButton.onclick = function() {
clearInterval();
const newInterval = intervalInput.value;
chrome.storage.sync.set({'rotationInterval': newInterval}, function() {
chrome.runtime.reload();
});
};
// rotateTabs.js (фоновый скрипт)
chrome.runtime.onInstalled.addListener(function() {
chrome.storage.sync.set({'rotation': true});
chrome.storage.sync.get('rotationInterval', function(data) {
if (!data || data.rotationInterval === null || data.rotationInterval === undefined) {
chrome.storage.sync.set({'rotationInterval': 5000});
setInterval(cycleNextTab, 5000);
} else {
setInterval(cycleNextTab, data.rotationInterval);
}
});
});
function cycleNextTab () {
chrome.storage.sync.get('rotation', function (data) {
if (data.rotation) {
chrome.tabs.query({active: true, currentWindow: true}, function(tab) {
const currentTabIndex = tab[0].index;
chrome.tabs.query({}, function(tabs) {
const nextIndex = (currentTabIndex + 1) === tabs.length ? 0 : currentTabIndex + 1;
const nextTabId = tabs[nextIndex].id;
chrome.tabs.update(nextTabId, { active: true });
chrome.tabs.update(nextTabId, {url: tabs[nextIndex].url});
});
});
}
});
}