如果用户没有在扩展上登录,我正在实现一个附加到页面的通知,但我只希望扩展在每个浏览器会话中执行一次,以便它们不会获得如果他们没有登录,他们访问的每个页面都会产生令人讨厌的通知。Chrome扩展后台页面状态
他们这样做的方式是通过将我的后台脚本中的布尔值初始化为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,就不会再次运行。这是假设后台脚本的状态在整个浏览器会话中保留并且不会再次部署。
当我测试扩展时,即使在初始通知已经触发后,一些随机页面也会收到通知。得到它的网页大约是每10页中有1页,但是我访问的网站完全是任意的。
感谢您的彻底解释和反馈有关弃用。要明确,chrome.runtime.sendMessage/onMessage是否是正确的替代品? – Ephapox
是的,这是直接替换。 – Xan