我希望能夠在後臺(在我的擴展上)存儲數據,以便我可以在多個域之間訪問這些數據。Chrome擴展程序:在背景上存儲數據
哪裏是我在做什麼:
內容的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;
});
}
背景的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;
}
});
但是,如果沒有sucess,因爲我不能從回調內部返回getItem。
我確實收到了function(response) { }
回調裏面的數據,我只是不能將它作爲getItem的返回返回。
我該怎麼做?
sendRequest將ANS onRequest已被棄用 –
嗯,我試圖幫助。 – Chris
@Chris我試過你的例子,但不幸的是不工作,你能幫我一下:) –