2012-12-29 35 views
8

在Firefox上打開一個IndexedDB的數據庫,當我得到一個錯誤。此代碼在Chrome中正常工作,但在Firefox中失敗。無效狀態誤差索引Db的

<script type="text/javascript"> 
    var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; 
    var request = indexedDB.open("TestDB", 1); 
</script> 

的JavaScript錯誤發生就行了indexedDB.open("TestDB", 1)

+0

這是什麼瀏覽器失敗?在Chrome /極光 – Bartek

+0

它打破了在FireFox – JIJIL

+0

退房https://developer.mozilla.org/en-US/docs/IndexedDB/IDBEnvironment一個很好的方法來檢查針對不同瀏覽器支持正常工作。 – Bartek

回答

10

對於我來說,這個錯誤是由於在Firefox中的隱私設置。在首選項面板中將歷史設置設置爲「Firefox將:記住歷史記錄」,使IndexedDB可以正常工作。

+0

您的解決方案更令人滿意。看一看在https://developer.mozilla.org/en-US/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB限制部分 –

-2

IndexedDB的對象是窗口實例的方法,所以它必須是

<script type="text/javascript"> 
    window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; 
var request = indexedDB.open("TestDB", 1); 
</script> 

在你的代碼,是IndexedDB成爲當地的功能。顯然這不起作用。

+0

你讓事情變得更糟。爲什麼本地功能不起作用? [函數是第一類公民在javascript](http://stackoverflow.com/a/61094/383793) –

+0

這些API函數(另一個是indexedDB.cmp)調用它們時應該綁定所有者對象實例。它們不是純函數,儘管它們應該是因爲我們沒有使用任何實例變量(從用戶的角度來看)。但從瀏覽器的角度來看,這些功能並不是純粹的,由於安全檢查,他們需要評估所有者實例對象。 –