【问题标题】:Accessing local storage using PouchDB from within iframe in firefox在 firefox 的 iframe 中使用 PouchDB 访问本地存储
【发布时间】:2015-11-09 14:04:48
【问题描述】:

我正在使用 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>

在火狐中;当我在主浏览器窗口中加载此 html 并创建和检索记录时,一切正常,但是当我在 iframe 中加载此 html 页面并尝试读取记录时,它不起作用。

但在 chrome 中,当我在 iframe 中加载此 HTML 并读取记录时,它工作正常。

在 firefox 的 iframe 中没有读取记录(以及与本地 DB 相关的其他操作)的原因是什么

【问题讨论】:

  • 您使用的是 webSQL 还是 IndexDB?适配器说 webSQL 只能在 chrome 和 safari 中工作:pouchdb.com/adapters.html
  • 是的,我正在使用 indexedDB,因为 websql 在 Firefox for pouchDB 中不可用

标签: firefox iframe indexeddb pouchdb


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多