我有一个脚本,可以编写加载页面的iFrame。我创建了一个JSFiddle来让事情变得清晰:
link JSFiddle loading CNN in a frame
这会将CNN加载到一个帧中。如果你在框架中向下滚动到新闻,点击新文章,然后“返回”,在Safari和Google Chrome中都会有一些奇怪的行为:单击“返回”并不会将iframe“返回”,而是会将整个父框架“返回”。我如何才能防止这种情况发生?
同样奇怪的是,这种情况并不总是发生。自己尝试一下,至少点击5-10个链接,你就会看到小提琴会时不时地自我重置。这不应该发生..。
这似乎只发生在Safari en Chrome中,Opera和IE似乎没有这个问题……
发布于 2012-03-22 11:44:52
当你点击不同的URLS时,浏览器会注册历史事件,因为iframe是页面u所在页面的一部分,它会将iframe内的点击注册为父页面的历史事件。不同的浏览器可能会有略微不同的行为-我希望FF和Chrome是单向的,而IE的行为略有不同。然而,测试您的示例时,Chrome和IE的工作方式完全相同,几乎与预期的一样。
所以要澄清的是:加载JSFiddle对于浏览器来说是一个历史事件。单击按钮创建并加载Iframe不是历史事件。单击Iframe窗口中的URL链接是一个历史事件。
在这一点上,你有两个状态需要浏览器记住,你可以在这两个状态之间来回切换。
https://stackoverflow.com/questions/9816037
复制相似问题