阻止Chrome扩展程序的popup.html自行打开

我正在创建一个Chrome扩展程序,其中包含一个background.html文件,该文件每分钟从API请求一次信息。 收到信息后,它会向popup.html发送popup.html信息,弹出窗口用于将新的HTML元素附加到弹出popup.html体上。

问题是后台持续运行(应该如此),但即使弹出窗口关闭,它也会弹出。 这导致弹出窗口每分钟打开一次非常烦人。

我想知道,有没有办法看看popup是否关闭,如果是这样的话,什么都不做? 或者还有另一种方法可以阻止弹出窗口自行打开吗?

这是Github存储库 ,但重要的部分在下面突出显示。

这是我正在ping弹出的方式:

 // 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[i]; var htmlBlock = // ... generate a block of html ... $('#container').prepend(htmlBlock); } } 

打开时,从弹出窗口到background_page打开一个长期存在的连接 。 在background_page中,您可以检查连接当前是否处于活动状态。 如果传递必要的消息,则等待连接激活。