Я создаю расширение Chrome с файлом background.html, который запрашивает информацию у API раз в минуту. Как только он получает информацию, он отправляет popup.html информацию JSON, которую всплывающее окно использует для добавления новых элементов HTML в тело всплывающего окна.
Проблема Фоновый режим постоянно работает (как и должно быть), но он будет пинговать всплывающее окно, даже когда всплывающее окно закрыто. Это приводит к тому, что всплывающее окно открывается каждую минуту, что очень раздражает.
Я хочу знать, есть ли способ узнать, закрыто ли всплывающее окно, и ничего не делать, если это случай? Или есть другой способ предотвратить открытие всплывающих окон самостоятельно?
Вот репозиторий Github, но важные части выделены ниже.
Вот как я проверяю всплывающее окно:
// background.js
function sendQuestions()
{
var questions = JSON.parse(db.getItem(storage));
chrome.extension.sendRequest(appid, { 'questions': questions }, function() {});
}
setInterval(sendQuestions, 60e3);
Вот как всплывающее окно обрабатывает это:
// popup.js
chrome.extension.onRequest.addListener(function(request) {
if (request.questions) {
displayQuestions(request.questions);
}
});
function displayQuestions(questions)
{
for (i = 0; i < questions.length; i++) {
var question = questions;
var htmlBlock = // ... generate a block of html ...
$('#container').prepend(htmlBlock);
}
}
Подробнее здесь: https://stackoverflow.com/questions/606 ... ing-itself