我正在使用Chrome扩展程序,每次打开它时都需要它来保持其状态。
例如,我有一个输入元素,在关闭并重新打开扩展后,需要保持填写状态。
在此页面上,我找到了清单的示例。它导致我将以下内容添加到清单中,但是没有用:
"background": {
"persistent": true,
"page": "popup.html"
}
有没有办法保持开口之间的延伸状态?
首先,请阅读Chrome扩展的体系结构概述。
弹出页面是“废弃”页面,仅在弹出窗口打开时才存在。你不能影响那件事。一旦弹出窗口失去焦点,其HTML文档将被销毁。
相反,只要Chrome运行,就会存在一个背景“页面”(通常没有HTML标记,因此通常使用"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});
});
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句