我正在切换域,并希望为我的用户提供在我的新域上继续使用相同IndexedDB的选项。
我想,由于同源策略,JavaScript无法实现这一点。但是,我的用户是技术熟练的"并且都使用Chrome。
那么我的用户可以手动将IndexedDB从一个域移动到另一个域吗?也许在Chrome用户目录中有一些文件复制操作?
答案 0 :(得分:4)
您可以使用iframe和postMessage()
来传输数据。让新域打开旧域的iframe并设置message
事件侦听器。让旧域提供一个页面,该页面在打开时会对数据库进行爬网并对父窗口执行postMessage()
- 指定 targetOrigin 参数以将其限制为正确的新域。您需要为批处理和信令完成创建适当的消息方案。
(在Chrome中,索引数据库的后备存储包含数据本身的原点,因此您无法简单地移动文件。)
答案 1 :(得分:0)
选项1 导出/导入
objectstore.getall() //and done on each store.
将数据添加到新网站的一些交易。
//a few createobjectstore()
for(var i in myobject.length){
objecstore.add(myobject[i]
}
选项2 如果镀铬并使用镀铬扩展。我没有在我面前的页面,但如果您知道您的分机的ID和另一个分机,您可以跨站点
我想说chrome.runtime.message()用于在扩展名的反页和其他扩展页面之间进行交谈,同时需要与其他网站进行通信。