我在使用chrome.storage.local.get
功能时遇到问题。我已经全部工作了,除了我不懂如何处理.get
函数。
我想通过单击按钮从一个chrome选项卡复制另一个对象来复制对象。我有一个循环来获取我的对象键,我可以通过以下方式将它成功保存在chrome本地存储中:
chrome.storage.local.set({
'copiedObj': obj
});
但是,在尝试使用.get
功能时,我无法指定所需的键数字。我需要密钥编号,因为密钥及其值每次都会更改,因为我正在从不同的页面复制数据。
$('#targetInfo').click(function(){
console.log('context 2 received');
var storage = chrome.storage.local.get('copiedObj', function (items) {
console.log(items);
});
});
这会获取完整的对象键和值,但是当尝试更改它以获取第一个键(将脚本中的console.log更改为items [0]时,我在控制台中收到一个未定义的错误消息。 / p>
我希望它遍历所有键,并将键赋值给变量,赋值给变量并执行函数。对于每个按键的时间。我在代码中写了详细的解释:
//Get the DOM input field
var specific_name = document.getElementById('new_specific_name');
var specific_value = document.getElementById('new_specific_value');
//Start loop, from 0 to the last object keys
for (i=0;i<items.length;i++) {
//Set specific_name value to the first key inside the object
specific_name.value = XXX[i];
//Set specific_value value to the matching key value inside the object
specific_value.value = ZZZ[i];
//Execute this function
add_new_specific();
}
答案 0 :(得分:0)
(最小解决方案,等待澄清)如前所述,
var storage = chrome.storage.local.get('copiedObj', function (items) {
console.log(items);
});
应该是
var storage = chrome.storage.local.get('copiedObj', function (result) {
console.log(result.items);
console.log(result.items[0]); // if items is an array...
});
要遍历对象,请参阅https://stackoverflow.com/a/18202926/1587329。您需要在.get
中的内部匿名函数中执行此操作。