我正在构建一个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下的变量。但我在扩展中看到了一个不同的集合。
似乎扩展程序无法读取这些内容。有没有办法可以发送这些,或者我需要一种不同的方法吗?
答案 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