阻止 Chrome 扩展程序的弹出窗口.html自行打开
Preventing a Chrome extension's popup.html from opening itself
我正在创建一个Chrome扩展程序,该扩展程序具有一个background.html
文件,该文件每分钟从API请求一次信息。收到信息后,它会popup.html
JSON 信息发送消息,弹出窗口使用该信息将新的 HTML 元素附加到弹出窗口的正文中。
问题是后台一直在运行(应该),但即使弹出窗口关闭,它也会ping弹出窗口。这会导致弹出窗口每分钟自行打开一次,这非常烦人。
我想知道,有没有办法查看弹出窗口是否关闭并且在这种情况下不执行任何操作?或者有没有另一种方法可以防止弹出窗口自行打开?
这是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中,您可以检查连接当前是否处于活动状态。如果是传递必要的消息,否则请等待连接处于活动状态。
相关文章:
- 窗口大小html css
- 如何关闭html中的iframe弹出窗口
- javascript弹出窗口没有正确加载html表单
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 从html锚元素传递窗口对象
- 编辑弹出窗口的HTML的单击命令
- Chrome应用程序在全屏中创建新窗口-html元素不是全高的
- 基本html页面和弹出窗口之间的数据交换
- 使用html中的jquery输入值窗口提示
- HTML 框架 - 防止引导弹出窗口在用户单击正文时消失
- HTML窗口弹出窗口和iPad的正确降级
- 在其他html窗口中创建一个html窗口
- HTML窗口刷新页面顶部
- 如何将数据从Parent html窗口传递到弹出窗口
- 传递COM和访问HTML窗口之间的组件
- 如何显示页面上没有地址栏和状态栏的html窗口
- 跨HTML窗口的Javascript函数调用
- 如何从另一个HTML窗口更改1个HTML窗口的背景图像
- Javascript HTML窗口打印问题
- HTML窗口打开按钮单击在IE中不起作用