Chrome 扩展程序是不是可以访问本地存储?
Posted
技术标签:
【中文标题】Chrome 扩展程序是不是可以访问本地存储?【英文标题】:Do Chrome extensions have access to local storage?Chrome 扩展程序是否可以访问本地存储? 【发布时间】:2011-01-10 07:37:45 【问题描述】:是否可以在 chrome 扩展的上下文中以浏览器重启后可访问的方式存储数据?
【问题讨论】:
【参考方案1】:比这更简单:
阅读:
var myStoredValue = localStorage["TheKeyToMyStoredValue"];
写作:
localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
摆脱:
delete localStorage["TheKeyToMyStoredValue"];
【讨论】:
你先生是99级的德鲁伊和圣人。 很好的答案。请注意,这不适用于内容脚本。我很困惑,直到我找到this【参考方案2】:是的,是的。详细了解如何执行此操作可能会超出合理的 *** 答案的长度,因此我将向您推荐 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.google.com/webstore/detail/… 这个 API 也做得很好:developer.chrome.com/extensions/storage.html 它还允许您将数据同步到您的个人资料中【参考方案3】:现在最好使用chrome.storage chrome.storage 是异步的,这使其速度更快,并且 localStorage 限制为 5MB。
【讨论】:
“这使它更快” [需要引用] 正如 chrome 开发者 here 指定的那样,批量非阻塞读写操作比阻塞和串行 localStorage API 更快。 感谢您的链接!【参考方案4】:这里已经有一些很好的答案,但请注意,如果您决定在扩展程序中使用内容脚本,则该内容脚本将无法访问 localStorage。因此chrome.storage 是一个不错的选择。
【讨论】:
技术上它可以访问localStorage
——它将是运行内容脚本的域的本地存储(与页面本身共享)。跨度>
【参考方案5】:
当前的 chrome 版本有本地存储。
我自己用过。您可以使用modernizr 来检测浏览器是否支持它。 我已经为客户端编写了一个解决方案,如果不存在本地存储,我会回退到 cookie,但这对于扩展来说应该不是问题。
【讨论】:
【参考方案6】:Chrome 还支持 HTML5 Web Database 规范。这为您提供了一个本地 SQL 数据库,因此您可以做比简单地将名称/值对存储在本地存储中更复杂的事情。
【讨论】:
以上是关于Chrome 扩展程序是不是可以访问本地存储?的主要内容,如果未能解决你的问题,请参考以下文章
从 Chrome 扩展程序访问网页的 localStorage