Javascript Chrome扩展:使用同一个键访问多个值中的一个

Javascript Chrome扩展:使用同一个键访问多个值中的一个,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在尝试编写一个Google Chrome扩展,我正在使用Chrome.storage API 我使用以下方式存储页面的url: chrome.storage.local.set({'url': document.URL}); 但是这个函数被多次调用,因此在存储器中有多个不同的URL具有相同的“URL”键 要获取我使用的值,请执行以下操作: chrome.storage.local.get('url', function (urlResult) { url = urlResult.u

我正在尝试编写一个Google Chrome扩展,我正在使用Chrome.storage API

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

    chrome.storage.local.set({'url': document.URL});
但是这个函数被多次调用,因此在存储器中有多个不同的URL具有相同的“URL”键

要获取我使用的值,请执行以下操作:

chrome.storage.local.get('url', function (urlResult) {
url = urlResult.url;
document.getElementById("urlInfo").innerHTML = url;
});
但这将只返回存储在键中的最后一个值。 例如,如果我访问第一个和第二个,我的代码将只返回github地址。当同一个键有多个值时,是否可以访问stackoverflow值


谢谢

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

设置:

获取:


你正在寻找阵列的奇迹。谢谢你的提示@SLaks!它起作用了!非常感谢。不过我还有一个问题。我检查了本地存储文件,似乎每次向数组中添加新元素时,它都会保留以前的数组,并将新数组追加到同一个文件中。所以在访问stackoverflow.com和github.com之后,我的文件有[“stackoverflow”],[“stackoverflow”,“github”]。我尝试了
chrome.storage.local.remove({url:url})在执行“设置”之前,但这样做似乎会使下一个“设置”不起作用。有什么建议吗(@hollaholl,“本地存储文件”是什么?如何将元素添加到数组中?我所说的“本地存储文件”是指信息存储的位置。它位于
C:\Users\myname\AppData\local\Google\Chrome\User Data\Default\local Extension Settings\eilllankfpchokjofpgnhjbfppmhjchh
。文件名是
000003.txt
。文件看起来有点凌乱,但显然保留了先前的文件名ious数组保持不变并追加新的数组。我将元素添加到数组中,方法与使用push时所显示的完全相同:
chrome.storage.local.get({URL:[]},函数(result){var URL=result.URL;URL.push(document.URL);chrome.storage.local.set({URL:URL});});
@hollaholl,很抱歉,我甚至不知道存储过程会被保存到文件中……如果可能的话,请你再发一个问题好吗?也许其他有这种情况经验的人会帮上忙。
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');
});