我將在我的頁面上放置多個iframe,並且我將在其中密集使用sessionStorage。我很好奇的是,如果我有單獨的存儲空間,還是共享所有的iframe?尺寸限制如何應用?iframe中的sessionStorage
4
A
回答
7
好的,我自己做了一個測試。至少在Chrome(44)和Firefox(40)中,如果sessionStorage屬於同一個域,並且不屬於不同的域,則會在頁面和包含的iframe之間共享sessionStorage。
3
如果sessionStorage是共享的,取決於iframe的頁面,它的起源是URL的域部分。如果您有一個網頁http://myserver/test.html
,並且它包含http://thatserver/some.html
通過iframe,則iframe的頁面具有域thatserver
。因此,來源不同,sessionStorage不會被共享。但是,如果iframe的頁面是http://myserver/some.html
,它具有相同的原點並且具有相同的原點。
現在有一個額外的技巧:iframe的sandbox屬性。如果您編寫的<iframe sandbox>
沒有值allow-same-origin
iframe的內容獲得唯一的原點。這意味着它會得到一個不同的sessionStorage,而不管頁面的真實來源。您可以將<iframe sandbox="allow-same-origin">
寫入沙箱中,並讓iframe的內容具有相同的原點(但只有在確實具有相同的原點時)。
現在特別說明:沙盒iframes將不支持localStorage per spec。在webkit瀏覽器和Mozilla Firefox中,如果沙箱化的iframe內容嘗試訪問sessionStorage,則會引發異常。
相關問題
- 1. 的sessionStorage彈出
- 2. 錯誤:[sessionStorage中的[$ injector:unpr]
- 3. SignalR的jQuery的sessionStorage
- 4. 的sessionStorage不工作
- 5. 從sessionStorage中刪除值JavaScript
- 6. sessionStorage,變量腳本中斷
- 7. Initiliaze&在React中使用sessionStorage?
- 8. HTML5 sessionStorage和XMLDocument
- 9. sessionStorage返回undefined
- 10. Phone GAP SessionStorage
- 11. sessionStorage in Firefox
- 12. 的sessionStorage的不工作
- 13. iOS sessionStorage and form submits
- 14. 錯誤使用sessionStorage
- 15. sessionStorage JavaScript,加載getItem?
- 16. Angularjs sessionStorage和範圍
- 17. SessionStorage和json對象
- 18. 從sessionStorage獲取值
- 19. 的sessionStorage綁定事件
- 20. 做sessionStorage的Ajax Json飼料
- 21. 的sessionStorage值變爲在AngularJS
- 22. HTML5 sessionStorage奇怪的行爲
- 23. 顯示的sessionStorage項目
- 24. 如何編輯和sessionStorage的
- 25. iFrame中的iFrame
- 26. iframe中的iframe
- 27. iframe中的iframe [IE]
- 28. sessionStorage在IE11中顯示未定義?
- 29. angularjs - 如何在sessionStorage中存儲數組?
- 30. 在sessionStorage中保存Javascript對象
_Local存儲是每個域。所有來自一個域的頁面都可以存儲和訪問相同的數據。因此,這肯定會在幀之間共享本地存儲數據(假設它們來自同一個域)。會話存儲是根據瀏覽器標籤或窗口,所以我猜想它使用單獨的存儲,因爲我總是認爲幀是完全不同的窗口。這是一個有趣的瀏覽器/框架安全相關閱讀:http://stackoverflow.com/questions/2569768/how-to-communicate-between-frames – mikeecb
@mikeecb我不需要本地存儲。我需要會話存儲。我猜也一樣,但我希望有人知道肯定。 – strannik