使用iframe时,使“浏览器后退”按钮适用于主页面

时间:2011-03-24 13:17:15

标签: javascript html internet-explorer iframe

我们有IE的问题。在带有表单的网页上,通过javascript创建多个框架。这是由于一些糟糕的所见即所得。问题是,当用户点击浏览器“后退”按钮时,您希望整个页面返回。这是在FF,Chrome,Opera,Safari等中发生的情况。但是对于IE,你必须单击页面上每个帧的后退按钮,即使你没有做任何其他事情而是加载页面。

知道有时+20帧可以在同一页面上(许多文本字段),这对用户来说真的很痛苦。

问题:如何使浏览器后退按钮适用于主页面,无论页面上有多少帧?

非常感谢!

2 个答案:

答案 0 :(得分:0)

这样做的一种方法是使用hash bang url实现客户端路由。

每次在iframe上更改页面时,父URL的哈希部分都会更改以反映它。

然后你有一些js来监听这些变化,并做了跨帧更新整页状态所需的东西。

现在,当用户按下后退按钮时,父级网址将更改为子iframe中最后一次更改之前的哈希值,并且所有内容都会相应更新。

请注意:如果您有很多iframe,这是一个非常重要的事情,而且我无法为您提供可以解决问题的工作脚本。这只是为了灵感。

答案 1 :(得分:0)

(遵循Martin Jespersen的回应)

是的,我也认为这只是解决方案。而且很难实现,但是有很多好的库可以处理#更改。

轻量级jQuery解决方案:http://tkyk.github.com/jquery-history-plugin/

使用ExtJS的非常复杂的解决方案:http://dev.sencha.com/deploy/dev/examples/history/history.html#tab1:subtab1

而且我认为,如果没有javascript,就不可能实现跨浏览器。