【发布时间】:2014-02-27 19:49:04
【问题描述】:
我正在编写一个 chrome 扩展程序,我希望在其中一些数据在多台计算机之间同步。我的印象是,如果我使用同一个 gmail 帐户“登录”到两个单独的 chrome 浏览器(一个在同一台计算机上运行的虚拟机中),我应该能够使用 chrome.storage.sync.set在一个浏览器上,然后使用 chrome.storage.sync.get 从另一个浏览器检索相同的数据?
我可以使用 get 方法从我运行 set 方法的同一浏览器中检索数据(甚至从单独的隐身窗口),但另一个虚拟机上的相同 get 命令返回一个空对象。
两种浏览器都在“高级同步设置”中设置了“同步所有内容”选项。 两种浏览器都有相同的 chrome 版本:33.0.1750.117 m。
这是我的设置和获取代码:
chrome.storage.sync.set({'foo': 'bar'}, function() {});
chrome.storage.sync.get('foo', function(items) {
console.dir(items);
});
【问题讨论】:
-
两个扩展是否使用相同的扩展 ID?
-
在@abraham 的评论(这很可能是正确答案)的基础上构建一点,当您上传到商店时,扩展 ID 会被永久分配。对于开发中的解压扩展,ID 是从一些可能是不寻常的系统变量合成的,例如解压扩展的目录位置。如果您想知道如何在开发过程中使 ID 稳定,请提出一个单独的问题。
标签: javascript google-chrome-extension