【发布时间】:2012-06-29 15:11:51
【问题描述】:
我希望能够在后台(在我的扩展程序上)存储数据,以便我可以在多个域之间访问这些数据。
我在做什么:
content-script.js
function setItem(name, data) {
chrome.extension.sendMessage({ command: 'setItem', name: name, data: data });
}
function getItem(name) {
chrome.extension.sendMessage({ command: 'getItem', name: name }, function(response) {
return response;
});
}
background-script.js
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
switch (request.command) {
case 'setItem':
localStorage.setObject(request.name, request.data);
return;
case 'getItem':
sendResponse(localStorage.getObject(request.name));
return;
}
});
但没有成功,因为我无法从 getItem 的回调内部返回。
我确实在 function(response) { } 回调中获取了数据,但我无法将其作为 getItem 的返回返回。
我应该怎么做?
【问题讨论】:
标签: javascript google-chrome-extension local-storage