chrome.storage.local.get通过键和元素同时进行迭代

时间:2018-11-14 15:45:33

标签: loops google-chrome-extension local-storage storage

首先,很抱歉,如果原始问题不够清楚,  我正在努力定义我遇到的确切问题。 我正在制作一个Chrome扩展程序,其中包含空白输入框列表。我想使用chrome.storage.set方法保存在这些输入框中分配的值,并在重新打开弹出窗口时将这些值检索到其原始输入框中。

到目前为止,我已经设法使用循环在本地存储框的值,并根据其迭代顺序为每个值分配一个键。

HTML

<input type="text" class="random" value="">
<input type="text" class="random" value="">
<input type="text" class="random" value="">
<button id="4">save</button>

JS

document.addEventListener('DOMContentLoaded', function() {
  document.getElementById("4").addEventListener("click", save);
});
function save() {
  var id = document.querySelectorAll("input[type='text']");
  for (i = 0; i < id.length; i++) {
  var inputValue= id[i].value;
    if (id.length > 0) {
    var key = "key"+i;
    chrome.storage.local.set({[key]: inputValue});
    alert(key)}
  }
}

当我尝试检索每个值并将其返回到其原始输入字段时,问题就来了。我的解决方案是创建另一个循环,该循环在检索相应键的同时遍历输入字段,但似乎无法使其正常工作。

window.onload = () => {
const id = document.querySelectorAll("input[type='text']");
    for (i = 0; i < id.length; i++) {
        if (id.length > 0) {
         var key = "key"+i;
        chrome.storage.local.get([key], (data) => {
            if (data.key) { 
            id[i].value = data.key; 
    }
        });
    }
}}

如何正确定义变量?是否还有其他工作可以达到相同的结果?

0 个答案:

没有答案