做Chrome扩展程序可以访问本地存储?
-
23-09-2019 - |
题
是否有可能将数据存储在一个方式,这将是一个Chrome扩展的背景下,重新启动浏览器访问?
解决方案
即使比较简单的:
要读:
var myStoredValue = localStorage["TheKeyToMyStoredValue"];
要写入:
localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
要摆脱:
delete localStorage["TheKeyToMyStoredValue"];
其他提示
是,它是。去了怎样做到这一点可能会超过合理的StackOverflow的答案的长度,所以我将把你的的这个非常广泛教程 按Rajdeep Dua的。
相关的代码看起来是这样的:
// 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);
}
}
铬还支持HTML5 Web数据库规格。这给你一个本地SQL数据库,这样你就可以比简单地存储在本地存储名称/值对做多复杂的事情。
当前铬版本具有本地存储。
我已经用它自己。您可以使用Modernizr的检测是否浏览器支持与否。 我已经写了一个客户,我做了回退到饼干,如果没有本地存储存在的解决方案,但是这不应该成为信息的问题。
如今,它可能会更好使用 chrome.storage chrome.storage是异步的,这使得它更快,localStorage的被限制为5MB。
有已经在这里了一些伟大的答案,但请注意,如果你决定在你的扩展使用内容脚本,该内容脚本将无法访问localStorage的。因此 chrome.storage 是一个很好的选择。
不隶属于 StackOverflow