我正在嘗試創建一個簡單的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