我正在开发Chrome扩展程序,我需要它在每次打开时都保持其状态。
例如,在关闭并重新打开扩展程序后,我有一个输入元素需要保持填充状态。
在this page上,我找到了清单的一个例子。它引导我将以下内容添加到我的清单中,但它没有起作用:
"background": {
"persistent": true,
"page": "popup.html"
}
有没有办法在开口之间保持扩展状态?
答案 0 :(得分:0)
首先,请阅读Chrome扩展程序的Architecture Overview。
弹出页面是"一次性"只要弹出窗口打开就存在的页面;你不能影响那个。一旦弹出窗口失去焦点,它的HTML文档就会被销毁。
相比之下,背景"页面" (通常没有HTML标记,因此只要Chrome运行,就会存在"scripts"
而不是"page"
)与"persistent": true
的典型用法。因此,它可以保存状态信息。但它是一个看不见的页面。
正确的方法是使弹出页面动态化,将其状态保存到后台和/或各种存储API,并在打开时恢复状态。
最小例子:
// popup.js
// Suppose #myInput is a text input
document.addEventListener('DOMContentLoaded', function() {
chrome.storage.local.get({setting: "default value"}, function(data) {
var inputElement = document.getElementById("myInput");
inputElement.value = data.setting;
inputElement.addEventListener("input", function(e) {
chrome.storage.local.set({setting: e.target.value});
});
});
});