我有一个内容脚本,其中有一个名为myscript.js的脚本,现在我已经这样做了,如果google.com上的一个页面加载,那么setA的修改就完成了,否则就完成了setB的修改。现在我想要一个可以从该浏览器上打开的所有网页访问的变量。就像我们在java中有静态变量一样,同一个变量可以被类的所有对象访问,使用这个类比,静态变量是全局变量,对象是加载的网页
答案 0 :(得分:1)
如果您需要在内容描述的每个实例(以及其他扩展页面)中提供某些内容,您可以使用chrome.storage
API。
一个小小的缺点是API是异步的:
var myValue;
chrome.storage.local.get({myKey: "myDefault"}, function(data) {
myValue = data["myKey"];
// You can use myValue here..
});
// ..but not here
如果您可以链接异步代码,这很好;否则,您可以维护本地副本并在onChanged
上更新,而不是每次都使用get
:
chrome.storage.onChanged.addListener(function(changes, area) {
if(area == "local" && changes["myKey"]) {
myValue = changes["myKey"].newValue;
}
});