使用Chrome扩展程序从网页获取变量 - localstorage?

时间:2013-10-18 13:08:39

标签: jquery google-chrome google-chrome-extension local-storage

我正在构建一个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下的变量。但我在扩展中看到了一个不同的集合。

似乎扩展程序无法读取这些内容。有没有办法可以发送这些,或者我需要一种不同的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为你想要的是用chrome传递消息。请参阅此文https://developer.chrome.com/extensions/messaging.html

基础知识将是这样的

chrome.extension.getLocal({method: "getLocalStorage", key: "status"}, function(response) {
  console.log(response.data);
});

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getLocal"){
      sendResponse({data: localStorage[request.key]});
    }else{
      sendResponse({}); }
});

您还可以考虑使用Chrome存储而不是本地存储 http://developer.chrome.com/extensions/storage.html