首先,很抱歉,如果原始问题不够清楚, 我正在努力定义我遇到的确切问题。 我正在制作一个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;
}
});
}
}}
如何正确定义变量?是否还有其他工作可以达到相同的结果?