【发布时间】:2013-10-18 21:49:59
【问题描述】:
我正在构建一个用于映射页面的 Chrome 扩展程序。用户登录到地图,许多变量从数据库传递到地图中。
当扩展打开时,有没有办法将这些变量传递给它?我在考虑 LocalStorage:
作为测试,我在地图页面 HTML 中尝试了这个
if (typeof(Storage)!=="undefined") {
localStorage.setItem("firstname", "hello");
localStorage.setItem("lastname", "world");
}
然后在我刚刚尝试的扩展内容中
alert('My name is ' + localStorage.getItem("firstname") + ' ' +
localStorage.getItem("lastname"));
我可以在地图页面开发者工具中看到localstorage下的变量。但我在扩展中看到了不同的集合。
似乎扩展程序无法读取这些。有什么方法可以将这些发送过来,还是需要其他方法?
【问题讨论】:
-
能否包含用于检索变量的代码?
-
我只是尝试了另一种写入存储的方式(参见编辑后的代码),但它仍然返回“我的名字是 null null”。问题似乎是,如果我在控制台上查看 localstorage,页面是“Local Storage>www...”并包含变量。该扩展显示为“本地存储>Chrome 扩展:ghjghgjh ....”并显示一组不同的变量。所以我想我要问的是我可以从网页写入本地存储以获取扩展吗?
-
您正在使用的本地存储!= developer.chrome.com/extensions/storage.html。似乎有一些相当大的差异。
-
@PaulAston 我不知道您所做的更改是否与我的答案有关,但我删除了它,因为我发现这两种方法完全可以互换,我不知道。但是,我会推荐使用
setItem()和getItem(),这样您就不会意外覆盖任何属性或方法。我知道这与您的问题无关,但我认为值得注意。
标签: jquery google-chrome google-chrome-extension local-storage