我正在尝试创建一个简单的Chrome扩展。当用户点击一个复选框时,一些数据将被发送到后台脚本,并从那里弹出。的数据被成功地发送,它是在弹出在Chrome扩展中收到响应后执行脚本
$(document).ready(function() {
chrome.runtime.sendMessage({
from: 'popup',
subject: 'getmessage',
}, function(response) {
for (var x = 0; x < JSON.parse(response).length; x++) {
localStorage.setItem(JSON.parse(response)[x].acnumber, JSON.stringify(JSON.parse(response)[x]));
}
});
for (var i = 0, len = localStorage.length; i < len; i++) {
var datas = JSON.parse(localStorage.getItem(localStorage.key(i)));
var value = datas;
console.log(value);
$('table').append('<tr class="' + value.acnumber + '"><td>' + value.acnumber + '</td><td>' + value.name + '</td><td>' + value.amount + '</td></tr>')
}
})
存储在localStorage的问题是,我必须打开弹出两次来查看数据(附加到表)。在将数据添加到本地存储之前,循环正在执行
您可以通过使用setTimeout进行延迟,并在一段时间后才打开弹出窗口,以便加载数据。这不是一个好的解决方案,但可以用于临时解决方案 –
获得响应后,您能不能将'append'附加到'table'?为什么在这里需要'localstorage'? – aandis
@zack这必须在多个页面上工作,所以如果只是追加表格,我将失去另一个页面中的数据。 – Akshay