2015-11-09 31 views
0

我正在使用pouchDB,並試圖從跨域iframe中訪問本地存儲(同一來源) 這在Chrome中工作正常,但在Firefox中沒有。在firefox中使用iframe內的PouchDB訪問本地存儲

澄清:我在「foobar.com」,我加載了一個包含我的html的源代碼爲「test.com」的iframe,並且此html試圖訪問自己的本地存儲,即具有相同來源「test.com 」。

只是爲了展示一個例子,我從我的服務器

<!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;當我在主瀏覽器窗口加載這個html並創建和檢索記錄時,每件事情都很好,但是當我在iframe中加載這個html頁面並嘗試讀取記錄時,它不起作用。

但在Chrome中,當我在iframe中加載此HTML並讀取記錄時,它工作正常。

什麼在Firefox

+0

您使用的是webSQL還是IndexDB?適配器表示,webSQL將只適用於Chrome和safari:http://pouchdb.com/adapters.html –

+0

是的,我使用的是indexedDB,因爲websql在Firefox中不可用於pouchDB – MShoaib91

回答

1

一個iframe中是不讀的記錄(與本地數據庫,以及其他操作)的原因這是從Firefox的問題,即它無法從IFRAME訪問IndexedDB的。 此問題已在最新版本的mozilla firefox中解決,例如v43.0.4

相關問題