如果用戶沒有在擴展上登錄,我正在實現一個附加到頁面的通知,但我只希望擴展在每個瀏覽器會話中執行一次,以便它們不會獲得如果他們沒有登錄,他們訪問的每個頁面都會產生令人討厭的通知。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