需求
當(dāng)用戶不小心點(diǎn)擊了鼠標(biāo)或者離開了擴(kuò)展的popup頁(yè)面埋虹,此時(shí)需要對(duì)一些數(shù)據(jù)進(jìn)行清空或者刪除一些不必要的數(shù)據(jù).
遇到的問(wèn)題
然而chrome 擴(kuò)展官方并沒(méi)有對(duì)popup或者browserAction提供相關(guān)頁(yè)面消失時(shí)的監(jiān)聽事件
解決辦法
通過(guò)不斷的查找資料和查閱chrome擴(kuò)展開發(fā)文檔见妒,我們可以使用消息通信連接的方式解決了這個(gè)問(wèn)題
具體步驟:
首先在你需要監(jiān)聽頁(yè)面消失事件的js文件中與background建立連接,相關(guān)代碼:
//這里主要是為了與background建立連接点额,當(dāng)頁(yè)面關(guān)閉的時(shí)候連接就會(huì)斷開桑腮,此時(shí)background中你注冊(cè)的連接關(guān)閉函數(shù)此時(shí)會(huì)執(zhí)行耻瑟,因?yàn)閎ackground環(huán)境一直存在蚓土,除非你關(guān)閉了電腦
var port = chrome.runtime.connect();
在background環(huán)境注冊(cè)斷開連接時(shí)需要處理的方法,相關(guān)代碼:
chrome.runtime.onConnect.addListener(function (externalPort) {
externalPort.onDisconnect.addListener(function() {
var ignoreError = chrome.runtime.lastError;
console.log("onDisconnect");
});
});
總結(jié)
通過(guò)以上的方式便實(shí)現(xiàn)了類似對(duì)popup頁(yè)面消失時(shí)做一些事情的需求桥帆。感謝StackOverFlow医增,神一樣的解決問(wèn)題社區(qū),致敬老虫!
最后編輯于 :2017.12.05 02:19:47
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者