Google chrome IndexedDB:是否复制到其他域?

Google chrome IndexedDB:是否复制到其他域?,google-chrome,indexeddb,Google Chrome,Indexeddb,我正在切换域,希望为我的用户提供在新域上继续使用相同IndexedDB的选项 我想,由于同源策略,这在JavaScript中是不可能实现的。然而,我的用户“技术熟练”,都使用Chrome 那么,我的用户是否有办法手动将IndexedDB从一个域移动到另一个域?可能是Chrome用户目录中的某些文件复制操作?您可以使用iframe和postMessage()来传输数据。让新域打开旧域的iframe,并设置消息事件侦听器。让旧域提供一个页面,该页面在打开时对数据库进行爬网,并对父窗口执行postMe

我正在切换域,希望为我的用户提供在新域上继续使用相同IndexedDB的选项

我想,由于同源策略,这在JavaScript中是不可能实现的。然而,我的用户“技术熟练”,都使用Chrome


那么,我的用户是否有办法手动将IndexedDB从一个域移动到另一个域?可能是Chrome用户目录中的某些文件复制操作?

您可以使用iframe和
postMessage()
来传输数据。让新域打开旧域的iframe,并设置
消息
事件侦听器。让旧域提供一个页面,该页面在打开时对数据库进行爬网,并对父窗口执行
postMessage()
——指定targetOrigin参数以将其限制为正确的新域。您需要为批处理和信令完成创建一个合适的消息方案


(在Chrome中,索引数据库的备份存储包括数据本身的原点,因此您不能简单地移动文件。)

您可以使用iframe和
postMessage()
来传输数据。让新域打开旧域的iframe,并设置
消息
事件侦听器。让旧域提供一个页面,该页面在打开时对数据库进行爬网,并对父窗口执行
postMessage()
——指定targetOrigin参数以将其限制为正确的新域。您需要为批处理和信令完成创建一个合适的消息方案

(在Chrome中,索引数据库的备份存储包括数据本身的原点,因此您不能简单地移动文件。)

选项1 出口/进口

objectstore.getall()  //and done on each store. 
某些事务将数据添加到新站点

//a few createobjectstore()    
for(var i in myobject.length){
    objecstore.add(myobject[i]
}
选择2 如果是chrome,则使用chrome扩展。我并没有在我面前的网页,但若你们知道你们的扩展id和另一个扩展你们可以跨网站

我想说的是,chrome.runtime.message()用于在扩展的backpage和其他扩展页面之间进行对话,同时需要与其他站点进行通信

选项1 出口/进口

objectstore.getall()  //and done on each store. 
某些事务将数据添加到新站点

//a few createobjectstore()    
for(var i in myobject.length){
    objecstore.add(myobject[i]
}
选择2 如果是chrome,则使用chrome扩展。我并没有在我面前的网页,但若你们知道你们的扩展id和另一个扩展你们可以跨网站


我想说的是,chrome.runtime.message()用于在扩展的backpage和其他扩展页面之间进行对话,同时需要与其他站点进行通信

源文件是否可以在其中一个数据文件(例如,某种元数据文件)中轻松编辑?还是隐藏在某种难以编辑的二进制格式中?(正如您可能已经猜到的,我的用户很少,而且他们都足够精通在十六进制编辑器中编辑文件的技术)我会选择您建议的
postMessage()
方法(好主意!),除非确实需要额外的努力:-)源代码作为leveldb中数据库元数据记录的关键前缀存在。根据数据库历史记录(压缩等),目录中有任意数量的leveldb表文件,任何表文件中都可能存在条目。记录也在表中压缩。这么简单的回答:我认为人类做不到(我想,编写一个定制的leveldb客户端并重新实现Chrome的关键比较/解码例程在技术上是可行的。感谢您的时间和见解,我将尝试导出导入方法!源文件是否可以在其中一个数据文件(例如,某种元数据文件)中轻松编辑?)或者它隐藏在一些难以编辑的二进制格式中?(正如你可能已经猜到的,我的用户很少,而且他们都足够精通用十六进制编辑器编辑文件的技术)我会选择你建议的
postMessage()源代码作为leveldb中数据库元数据记录的键前缀存在。根据数据库历史记录(压缩等),目录中有任意数量的leveldb表文件,任何表文件中都可能存在条目。记录也在表中压缩。这么简单的回答:我认为人类做不到(我认为,编写定制的leveldb客户端并重新实现Chrome的关键比较/解码例程在技术上是可行的。感谢您的时间和见解,我将尝试导出导入方法!