2012-12-29 10 views
8

Otrzymuję błąd podczas otwierania bazy danych indexedDB w przeglądarce Firefox. Ten kod działa poprawnie w Chrome, ale kończy się niepowodzeniem w Firefoksie.Nieprawidłowy stan Błąd w Firefoksie dla indeksowanego Db

Błąd Javascript występuje w linii indexedDB.open("TestDB", 1).

+0

Do jakiej przeglądarki się to nie udaje? Działa dobrze w Chrome/Aurora – Bartek

+0

Podziadzi w FireFox – JIJIL

+0

Sprawdź https://developer.mozilla.org/en-US/docs/IndexedDB/IDBEnvironment, aby sprawdzić, czy obsługuje ona przeglądarkę. – Bartek

Odpowiedz

10

W moim przypadku błąd ten wynikał z ustawień prywatności w przeglądarce Firefox. Ustawienie ustawień historii na "Firefox będzie: Zapamiętaj historię" w panelu preferencji włączone IndexedDB do pracy.

+0

Twoje rozwiązanie jest bardziej przyjemne. Zajrzyj do sekcji ograniczeń na https://developer.mozilla.org/en-US/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB –

-2

indexedDBa obiekt jest metoda instancji okna, więc to musi być

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

w was kodzie indexedDBa stać lokalna funkcja. To oczywiście nie działa.

+0

Pogorszyło się. Dlaczego funkcja lokalna nie działa? [Funkcje są obywatelami pierwszej klasy w javascript] (http://stackoverflow.com/a/61094/383793) –

+0

te funkcje API (inne to indexedDB.cmp) powinny wiązać instancję obiektu właściciela podczas ich wywoływania. Nie są one czystą funkcją, chociaż powinny być, ponieważ nie używamy żadnych zmiennych instancji (z punktu widzenia użytkownika). Ale z punktu widzenia przeglądarki, funkcja ta nie jest czysta ze względu na kontrolę bezpieczeństwa, musi ocenić obiekt obiektu właściciela. –

Powiązane problemy