Chúng tôi có một ứng dụng web chạy trên Facebook (tức là chạy trong iFrame ở một tên miền khác). Nếu người dùng Safari có Cookie và Dữ liệu trang web được đặt thành mặc định, "Cho phép từ trang web tôi truy cập", dữ liệu chúng tôi lưu trữ qua localStorage.setItem hoạt động như sessionStorage, nghĩa là không có sẵn ngoài phiên hiện tại của người dùng (tức là sau khi người dùng đóng tab). Nếu chúng tôi thay đổi cài đặt thành "Luôn cho phép", cài đặt này hoạt động tốt như trong Chrome, IE, v.v.Safari localStorage không tiếp tục tồn tại giữa các phiên
Làm thử nghiệm, chúng tôi đã cố gắng điều hướng trình duyệt đến miền của ứng dụng của chúng tôi (https://ourappname.appspot.com) trực tiếp và hoạt động tốt đó. Và sau đó nó thực sự phải là một trang web được truy cập, nhưng khi quay trở lại trò chơi trong Facebook, vấn đề vẫn tồn tại.
Lưu ý rằng cuộc gọi setItem đang thành công, nó chỉ là getItem không trả lại bất cứ điều gì trong một phiên tiếp theo. (Vì vậy, nó không giống như khi người dùng là Duyệt web Riêng tư và chính cuộc gọi setItem không thành công với lỗi Quota đã vượt quá.)
Chúng ta cần làm gì để hỗ trợ Safari để ứng dụng của chúng tôi, chạy trong Facebook, có thể sử dụng localStorage làm dự định nơi dữ liệu sẽ tồn tại giữa các phiên?
Lạ lùng, tôi vừa thử nghiệm trong Safari 8.0.7 (10600.7.12) với "Cho phép từ các trang web tôi truy cập". Tôi thiết lập một khóa localStorage và sau đó đóng trình duyệt (với ⌘ + Q) và khi tôi mở lại trình duyệt và sử dụng localStorage.getItem nó đã có. – daviddoran
@daviddoran cảm ơn. Bạn có đang thử nghiệm một trang web đang chạy trong iFrame có tên miền khác với trang web cấp cao nhất không? Tôi sẽ chỉnh sửa câu hỏi của mình để làm rõ hơn. – leontx