![](/img/trans.png)
[英]Chrome extension, best way to send messages from injected script to background
[英]Is there a way to manually unload a background script for a chrome extension?
我正在開發一個 Chrome 擴展程序來跟蹤您使用計算機的時間。 我使用一個間隔遞增,並正在檢查計算機是否使用 chrome.idle.queryState 鎖定,如果它被鎖定,我不會更改我的計數器。
有沒有辦法手動卸載背景頁面,而不是不斷檢查間隔? 或者后台腳本是否會自動卸載和重新加載,比如在計算機休眠 X 分鍾之后? 由於我有一個間隔,我想知道腳本是否會自行卸載。 我做了類似的事情:
setInterval(function () {
chrome.idle.queryState(15, function (state) {
if (state !== "locked") {
counter += 1;
console.log(counter);
}
}
}, 6000);
感謝 wOxxOm 和 Nadia Chibrikova 回答問題。 在卸載腳本時,最好使用非持久性后台腳本,如下所示:
...
"background": {
"scripts": ["background.js"],
"persistent": false
},
...
這將在 15-30 秒后卸載,無論任何間隔,只要沒有打開的消息端口並且您不在 devtools 中檢查它。 出於我的目的,我保持消息端口打開,因此我使用一個變量來跟蹤 Chrome 是否空閑,使用 chrome.idle.onStateChanged 並相應地修改了我的代碼,如下所示:
chrome.idle.setDetectionInterval(15);
chrome.idle.onStateChanged.addListener(function (state) {
if (state === "locked") {
isLocked = true;
} else {
isLocked = false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.