2013-02-24 40 views
0

我使用chrome.storage API,这是为了让我们访问用户的数据存储,而不需要一个背景页:从扩展脚本中使用chrome.storage api - 数据由页面URL命名空间?

https://developer.chrome.com/stable/extensions/storage.html

该分机为任何特定的网页工作正常,但似乎数据的存储方式使得在为具有不同URL的页面加载扩展时无法访问数据。

基本获取数据代码:

var key = 'commonKey'; 
chrome.storage.sync.get(key, function(items) {console.log(items);} 

我匹配一个URL的内容脚本像http://test.com/ABC,数据跨页的多个负载正确依然存在。但是,当我加载http://test.com/CDE时,它会获取并设置一组不同的数据(并且不会影响页面ABC上加载的数据)。

这里有一些行为是命名每个URL的数据?我浏览了文档和其他问题,但没有找到任何类似的东西。

清单看起来像:

{ 
    "name": "Test script", 
    "manifest_version": 2, 
    "content_scripts" : [ 
    { 
     "matches": ["http://www.test.com/*"], 
     "js": ["jquery.min.js", "contentscript.js"] 
    } 
    ], 
    "permissions": [ 
    "storage" 
    ] 
} 
+0

我无法重现这一点。你能提供更多的信息吗? – 2013-02-24 11:23:18

回答

0

的问题在这里:使用代替“commonKey”键设置数据时

var key = 'commonKey'; 
chrome.storage.sync.get(key, function(items) {console.log(items);} 

导致数据被存储串下“关键'而不是'commonKey',如预期的那样。加上代码其余部分的逻辑导致了上述行为。