Mamy aplikację internetową działającą na Facebooku (tj. Działającą w iFrame w innej domenie). Jeśli użytkownik Safari ma domyślnie ustawione pliki cookie i dane witryny sieci Web, "Zezwól na odwiedzane przeze mnie strony", dane przechowywane przez localStorage.setItem działają jak sessionStorage, tj. Nie są dostępne poza bieżącą sesją użytkownika (tj. Po zamknięciu użytkownika Zakładka). Jeśli zmieniamy ustawienie na "Zawsze zezwalaj", działa ono tak samo jak w Chrome, IE itd.Safari localStorage nie jest zachowywany między sesjami
Bezpośrednio po próbie, przeglądaliśmy przeglądarkę w domenie naszej aplikacji (https://ourappname.appspot.com) bezpośrednio i działa dobrze tam. A także powinna to być odwiedzana strona internetowa, ale po powrocie do gry na Facebooku problem nadal istnieje.
Należy zauważyć, że wywołanie setItem działa poprawnie, po prostu getItem nie zwraca niczego w kolejnej sesji. (Tak więc nie jest tak, gdy użytkownik korzysta z przeglądania prywatnego, a wywołanie setItem samo kończy się błędem przekroczenia limitu.)
Co musimy zrobić, aby wspierać Safari, aby nasza aplikacja działająca na Facebooku mogła używać localStorage jako przeznaczone, gdzie dane przetrwają między sesjami?
Dziwne, właśnie testowałem w Safari 8.0.7 (10600.7.12) za pomocą opcji "Zezwalaj na odwiedzane przeze mnie witryny". Ustawiłem klucz localStorage, a następnie zamknąłem przeglądarkę (z ⌘ + Q) i kiedy ponownie otworzyłem przeglądarkę i użyłem localStorage.getItem, było tam. – daviddoran
@daviddoran dzięki. Czy testowałeś witrynę działającą w iFrame, która była inną domeną niż witryna najwyższego poziomu? Zmienię moje pytanie, aby było to bardziej jasne. – leontx