我发现了除了我需要的东西之外的所有东西的操作方法。这里是场景回到iframe的历史,但改变主窗口的地址
就像在GMail中 - 主要内容呈现在iframe中。点击主页面上的链接以iframe为目标。这运作良好,无缝。 在这一点上,如果我点击浏览器上的“返回” - iframe将返回。这很好,因为涉及缓存并且页面不会重新下载。
添加修改散列的通用逻辑会破坏所有内容。现在,当你回击浏览器时会改变has,但不会改变iframe的历史记录。我试过访问该特定iframe的历史记录 frames['myiframe'].history.back()
但仍然更改散列而不更改iframe源。
我发现了一个鬼鬼祟祟的history.replaceState(temp, '', iframelocation)
,这个工程在点击链接时无缝工作,但是倒退时它实际上会尝试在主窗口中加载iframe位置。
我不知所措。我知道GMail在每次回击或转发时都不会要求提供所有信息。那它是如何做到的?它是否使用多个iframe,并更改哪一个可见?
谢谢!
P.S. 测试了一个简单的情况:创建一个iframe,并通过一些更改链接<a href="child" target="iframe">a
现在通过location.href = 'something'
更改散列至此为止很好。现在,如果你明确告诉iframe回到历史 - 它不会 frames['iframe'].contentWindow.history.back()
Repopulating Divs将意味着重新获得数据,或有多个div。如果您在Firefox中打开gmail并禁用样式,则会看到它具有iframe,但会修改主窗口哈希。我已经使用jQuery +历史技巧,问题在于“后退”按钮只能保持主窗口或iframe的历史记录。 我无法同时更改主窗口历史记录和iframe历史记录 – Mikhail 2010-08-19 16:34:03
明白了。误解了这个问题。 – CogitoErgoSum 2010-08-19 16:55:55