1 回答

TA貢獻1853條經(jīng)驗 獲得超6個贊
我在我的擴展中嘗試了您的代碼(進行了一些細微的修改)并且它有效,所以我懷疑您之前的嘗試可能導致存儲中卡住了一些東西。這是我所得到的:
var urlSet = new Map();
chrome.storage.sync.get(["activeTabs"], function(items){
if(!items.activeTabs)
return;
urlSet = new Map(JSON.parse(items.activeTabs));
AddLinks();
});
function AddLinks()
{
//There are better ways of doing this!
var myLinks="";
urlSet.forEach(function(value, key) {
myLinks+="<a href='"+value+"' target='_blank'>"+key+"</a>";
});
// You may want to come up with a way to delete links
//before they get out of control and proclaim independence
document.getElementById('mydiv').innerHTML = myLinks;
}
saveItem.onclick = function(element) {
chrome.tabs.query({active: true}, function(tabs) {
urlSet.set(tabs[0].title, tabs[0].url);
chrome.storage.sync.set({ "activeTabs":JSON.stringify(Array.from(urlSet.entries())) });
AddLinks();
});
};
更新似乎將內(nèi)聯(lián)腳本添加到彈出窗口會導致安全問題。雖然可以將您的頁面列入白名單以使用自己的腳本,但添加新元素的更好方法是使用 document.createElement 創(chuàng)建它們,而不是生成字符串,以便讓您了解它的外觀:
var delButton = document.createElement("button");
delButton.innerHTML = "delete";
delButton.addEventListener('click',function(){/*something useful happens here*/});
document.getElementById('mydiv').append(delButton);
添加回答
舉報