【发布时间】:2024-01-30 07:05:01
【问题描述】:
是否可以在 chrome 扩展的上下文中以浏览器重启后可访问的方式存储数据?
【问题讨论】:
标签: google-chrome google-chrome-extension local-storage
是否可以在 chrome 扩展的上下文中以浏览器重启后可访问的方式存储数据?
【问题讨论】:
标签: google-chrome google-chrome-extension local-storage
比这更简单:
阅读:
var myStoredValue = localStorage["TheKeyToMyStoredValue"];
写作:
localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
摆脱:
delete localStorage["TheKeyToMyStoredValue"];
【讨论】:
是的,是的。详细了解如何执行此操作可能会超出合理的 * 答案的长度,因此我将向您推荐 Rajdeep Dua 的 this very extensive tutorial。
相关代码如下所示:
// Store item in local storage:
function setItem(key, value) {
try {
log("Storing [" + key + ":" + value + "]");
window.localStorage.removeItem(key); // <-- Local storage!
window.localStorage.setItem(key, value); // <-- Local storage!
} catch(e) {
log("Error inside setItem");
log(e);
}
log("Return from setItem" + key + ":" + value);
}
// Gets item from local storage with specified key.
function getItem(key) {
var value;
log('Retrieving key [' + key + ']');
try {
value = window.localStorage.getItem(key); // <-- Local storage!
}catch(e) {
log("Error inside getItem() for key:" + key);
log(e);
value = "null";
}
log("Returning value: " + value);
return value;
}
// Clears all key/value pairs in local storage.
function clearStrg() {
log('about to clear local storage');
window.localStorage.clear(); // <-- Local storage!
log('cleared');
}
function log(txt) {
if(logging) {
console.log(txt);
}
}
【讨论】:
现在最好使用chrome.storage chrome.storage 是异步的,这使其速度更快,并且 localStorage 限制为 5MB。
【讨论】:
这里已经有一些很好的答案,但请注意,如果您决定在扩展程序中使用内容脚本,则该内容脚本将无法访问 localStorage。因此chrome.storage 是一个不错的选择。
【讨论】:
localStorage——它将是运行内容脚本的域的本地存储(与页面本身共享)。跨度>
当前的 chrome 版本有本地存储。
我自己用过。您可以使用modernizr 来检测浏览器是否支持它。 我已经为客户端编写了一个解决方案,如果不存在本地存储,我会回退到 cookie,但这对于扩展来说应该不是问题。
【讨论】:
Chrome 还支持 HTML5 Web Database 规范。这为您提供了一个本地 SQL 数据库,因此您可以做比简单地将名称/值对存储在本地存储中更复杂的事情。
【讨论】: