除了一件事外,我的扩展中的每一件事都在工作!我想通过popup.js清除这个扩展的本地存储。它是一个简单的扩展,可以从某个域保存表单数据。
目前,在我的内容脚本(save.js)中,我正在通过localStoragekey访问本地存储,但是我似乎无法通过popup.js访问本地存储,而且我得到了一个“未定义的”,我假定它是预期的行为。
我已经尝试过localStorage.clear();来自于我的popup.js,但是这没有任何效果。大概是因为它希望从扩展本身中清除不存在的localStorage?
如何访问和清除save.js从popup.js中使用的本地存储?
popup.js
document.getElementById('clearAllData').addEventListener('click', clear);
function clear(){
localStorage.clear();
}
关于如何在save.js中保存数据的save.js片段
function saveTicket(ticket, contents) {
localStorage[ticketID] = contents;
}
发布于 2015-09-20 03:55:21
你没有正确地使用回调。您需要异步传递函数。例如:
function clear(){
chrome.storage.local.clear(function(obj){
console.log("cleared");
});
}不过,也可能是这样。Chrome存储已经是本地的。
function clear(){
chrome.storage.sync.clear(function(obj){
console.log("cleared");
});
}发布于 2015-09-20 17:12:41
您应该使用chrome.storage而不是localStorage。当您在内容脚本中使用localStorage时,它是页面的,而不是扩展的。但是,当您在内容脚本中使用chrome.storage时,它是对扩展的存储。
https://stackoverflow.com/questions/32675133
复制相似问题