it'*_* me 10 html5 cross-browser session-storage
在关注Weblinks时,我看到了HTML5 sessionStorage的不同行为.有时第一页的sessionStorage被复制到TargetPage,有时我在TargetPage上得到一个空的sessionStorage.
任何人都可以解释一下,为什么会这样?
鉴于以下链接:
<a href="TargetPage.html" target="_blank">link</a>
Run Code Online (Sandbox Code Playgroud)
当我通过右键单击 - >"在新选项卡中打开链接"打开链接时,TargetS上的sessionStorage为空.(预期) 但是当我用正常的左键单击打开链接时,sessionStorage会被复制到TargetPage.(意外)
注意:我在Chrome和Firefox中看到过这种行为.在这两种情况下,Internet Explorer 9都提供空的sessionStorage.这是我的预期行为.
我创建了一个jsFiddle来演示这种行为:http://jsfiddle.net/P9nUv/3/
任何人都可以想到一个跨浏览器的解决方案,以确保新浏览器选项卡/ Windows的空sessionStorage,无论它们如何被打开?
任何帮助表示赞赏!
恕我直言:
我认为问题出在不同的地方browsing context。W3CwebStorage规范中有这样一段话:
当在具有顶级浏览上下文的浏览上下文中创建新文档时,用户代理必须检查该顶级浏览上下文是否具有该文档来源的会话存储区域
Document这句话中的意思是新的一页。因此,这意味着如果您在新选项卡中打开同一页面,它将使用相同browsing context且相同的 sessionStorage,但如果您在新窗口中打开(即 target="_blank"),则情况browsing context会有所不同。
或者
问题可能出在单独的CPU线程上,所以单独browsing context和单独的sessionStorages。
| 归档时间: |
|
| 查看次数: |
5569 次 |
| 最近记录: |