Chrome扩展程序:使用相同的密钥访问其中一个值

时间:2016-07-11 03:11:07

标签: javascript google-chrome google-chrome-extension

我正在尝试编写Google Chrome扩展程序,而我正在使用chrome.storage API。

我使用以下方式存储页面的网址:

    chrome.storage.local.set({'url': document.URL});

但是这个功能被多次调用,因此在存储中有多个不同的URL具有相同的' url'键。

获取我使用的值:

chrome.storage.local.get('url', function (urlResult) {
url = urlResult.url;
document.getElementById("urlInfo").innerHTML = url;
});

但这只会返回存储在密钥中的最后一个值。 例如,如果我先访问https://stackoverflow.com/并且https://github.com/秒,我的代码将仅返回github地址。是否可以在为同一个键设置多个值的同时访问stackoverflow值?

谢谢!

1 个答案:

答案 0 :(得分:2)

正如@SLaks所提到的,您可以将URL保存在数组中。

集:

chrome.storage.local.get({urls: []}, function (result) {
    var urls = result.urls;
    urls.push(document.URL);
    chrome.storage.local.set({ urls: urls });
});

得到:

chrome.storage.local.get({urls: []}, function (result) {
    var urls = result.urls;
    var url1 = urls.find((url) => url === 'https://www.stackoverflow.com');
    var url2 = urls.find((url) => url === 'https://www.github.com');
});