【发布时间】:2016-02-29 19:52:14
【问题描述】:
如果用户未登录扩展程序,我正在实现将通知附加到页面,但我只希望扩展程序在每个浏览器会话中执行一次,这样他们就不会收到每个页面的烦人通知如果他们没有登录,他们会访问。
我这样做的方法是将我的后台脚本中的布尔值初始化为 false,它表示之前是否附加了通知。
每当用户未登录时,后台脚本都会收到一条消息,并根据上面提到的布尔值通知用户他们未登录。
background.js
var has_been_notified = false;
chrome.extension.onMessage.addListener(function(msg, sender) {
if(!has_been_notified) {
chrome.tabs.sendMessage(sender.tab.id, "login_notification");
has_been_notified = true;
}
})
一旦布尔值更改为 true,条件应该运行一次并且永远不会再次运行。这是在后台脚本的状态在整个浏览器会话期间被保留并且永远不会再次部署的假设下。
在我测试扩展程序时,即使在初始通知触发后,一些随机页面也会收到通知。获得它的页面大约是十分之一,但完全是我访问的网站。
【问题讨论】:
标签: google-chrome google-chrome-extension