Google chrome extension 如何指示Chrome Extension在每次打开时不重新加载HTML?
我正在处理一个Chrome扩展,我需要它在每次打开时保持其状态 例如,我有一个输入元素,在我关闭并重新打开扩展后,它需要保持填充状态 在上,我找到了清单的一个示例。这导致我将以下内容添加到清单中,但它不起作用:Google chrome extension 如何指示Chrome Extension在每次打开时不重新加载HTML?,google-chrome-extension,Google Chrome Extension,我正在处理一个Chrome扩展,我需要它在每次打开时保持其状态 例如,我有一个输入元素,在我关闭并重新打开扩展后,它需要保持填充状态 在上,我找到了清单的一个示例。这导致我将以下内容添加到清单中,但它不起作用: "background": { "persistent": true, "page": "popup.html" } 有没有办法保持开口之间的扩展状态?首先,请阅读Chrome扩展的说明 弹出页面是一个“一次性”页面,只有在弹出页面打开时才存在;你不能影响这一点。一旦弹出窗口失去焦点
"background": {
"persistent": true,
"page": "popup.html"
}
有没有办法保持开口之间的扩展状态?首先,请阅读Chrome扩展的说明 弹出页面是一个“一次性”页面,只有在弹出页面打开时才存在;你不能影响这一点。一旦弹出窗口失去焦点,其HTML文档将被销毁 相比之下,只要Chrome运行,背景“页面”(通常没有HTML标记,因此通常使用
“脚本”
,而不是“页面”
)就存在“持久”:true
。因此,它可以保存状态信息。但这是一个看不见的页面
正确的方法是使弹出页面动态化,将其状态保存到后台和/或各种存储API,并在打开时恢复状态
最简单的例子:
//popup.js
//假设#myInput是文本输入
document.addEventListener('DOMContentLoaded',function(){
chrome.storage.local.get({setting:“default value”},函数(数据){
var inputElement=document.getElementById(“myInput”);
inputElement.value=data.setting;
inputElement.addEventListener(“输入”,函数(e){
chrome.storage.local.set({setting:e.target.value});
});
});
});
感谢您提供的链接和信息。这个链接特别有用。@LeeLoftiss有趣的是,我觉得在我回答的一半问题中,我必须给出这个链接。这必须是文档中更突出的一部分,因为这基本上是理解一切工作原理所必需的阅读。我同意。我读了很多关于扩展的书,但我以前从未注意到这一页。在您的解决方案中,您使用了chrome存储。你会建议同时使用HTML5本地存储吗?我这样问主要是因为我想在以后为Firefox做一个扩展,这似乎会模仿我以后必须做的移植。简而言之,您可以在扩展页面中使用localStorage
,但不能在内容脚本中使用。谢谢我认为HTML5本地存储可以满足我的需求。