在firefox中使用iframe内的PouchDB访问本地存储

时间:2015-11-09 14:04:48

标签: firefox iframe indexeddb pouchdb

我正在使用pouchDB,我正在尝试从跨域iframe中访问本地存储(相同的来源) 这在chrome中运行良好,但在firefox中没有。

澄清:我在" foobar.com" ,我加载了一个iframe,其中包含我的html源码" test.com"这个html试图访问自己的本地存储,即具有相同的来源" test.com"。

为了展示一个例子,我从我的服务器

提供了这个HTML
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>test page</title>
</head>
<script type="text/javascript" src="pouchdb-5.1.0.min.js"></script>
<body>    
    <button id="create">create db</button>
    <button id="read">read records</button>
</body>

<script>
       document.getElementById('create').addEventListener('click', createDB, false);
       document.getElementById('read').addEventListener('click', readDB, false);

       function createDB(){
              db = new PouchDB('noobDB');
              console.log(db.adapter);
       }

       function readDB(){
              db = new PouchDB('noobDB');
              db.allDocs({include_docs : true})
                .then(function(result){console.log(result)})
                .catch(function(err){console.log(err)});
       }
</script>

在Firefox中;当我在主浏览器窗口中加载此html并创建和检索记录时,每件事情都可以正常工作,但是当我在iframe中加载此html页面并尝试读取记录时,它不起作用。

但是在Chrome中,当我在iframe中加载这个HTML并读取记录时,它可以正常工作。

在firefox的iframe中不读取记录(以及与本地数据库相关的其他操作)的原因是什么

1 个答案:

答案 0 :(得分:1)

这是firefox的一个问题,它无法从iframe访问indexedDB。 此问题已在最新版本的mozilla firefox中得到解决,即 v43.0.4