【发布时间】:2010-08-19 14:53:36
【问题描述】:
我已经找到了处理除我需要之外的所有内容的解决方案。这是场景
就像在 GMail 中一样 - 主要内容呈现在 iframe 中。单击主页上的链接以 iframe 为目标。这很好用,而且无缝。 此时,如果我在浏览器上单击“返回”——iframe 将返回。这很好,因为涉及缓存并且页面不会重新下载。
添加修改哈希的通用逻辑会破坏一切。现在,当您回击时,浏览器会更改 has,但不会更改 iframe 历史记录。我尝试访问该特定 iframe 的历史记录
frames['myiframe'].history.back() 但这仍然会更改哈希而不更改 iframe 源。
我发现了一个鬼鬼祟祟的history.replaceState(temp, '', iframelocation),它在单击链接时可以无缝运行,但往回走,它实际上会尝试在主窗口中加载 iframe 位置。
我很茫然。我知道 GMail 不会在您每次回击或转发时请求所有信息。那么它是如何做到的呢?它是否使用多个 iframe,并更改哪一个可见?
谢谢!
附:
测试了一个简单的情况:创建一个iframe,并通过一些<a href="child" target="iframe">a更改链接
现在通过location.href = 'something' 更改哈希值到目前为止一切顺利。现在,如果您特别告诉 iframe 回到历史 - 它不会
frames['iframe'].contentWindow.history.back()
【问题讨论】:
标签: javascript iframe history