2008-12-31 103 views
1

我正在使用iframe来显示包含链接的内容。当用户在iFrame中点击并点击“返回”时,它会返回到iFrame中。这种行为是好的。但是,一旦它们返回到iFrame的第一页并且它们再次“返回”,则整个窗口被带回到前一页。这是不需要的。带iFrames的后退按钮

为了防止这种行为,我在iFrame中放了一个假“后退”按钮。 (在大多数情况下,这是糟糕的用户界面,在这种情况下,它运行良好)。如果上一页是iFrame的页面,而不是整个页面,我希望这个假返回按钮只能返回。 当他们击中iFrame中的假背按钮时,它应该只将iFrame移回,没有别的。有没有办法做到这一点? iFrame是否有自己的历史对象?

一些可能有益的事情:iFrame的域和主窗口可以被认为是不同的。因此,如果可以阅读“全局”历史记录对象,则可以通过检查域名是否属于我的内容来检查前一页是否属于我的内容。如果域名不是我的,那么虚假的后退按钮将被隐藏或不做任何事情。

帮助非常感谢,并且节日快乐!

回答

2

你应该可以使用JavaScript历史对象推回用户;但当iframe点击用完并且主页想要返回时,您将无法停止它。而且你无法阻止它,因为它在大多数浏览器中被有意地锁定,以防止人们恶意破坏它。

  • 如果您使用链接一些复杂的嵌套你可以写你自己的历史跟踪代码,并有后退按钮弹出项关闭该堆栈,停车时栈是空的...
  • - 也许有些基于JavaScript的树形菜单?那样iframe从来没有页面刷新?

而不必一个例子,我不得不说,你的设计好像UI可怜......当我打回来了,我不想要导航做些什么来改变;我想回到我刚才的任何一页上。

+0

谢谢...我希望有一个更好的方法来做到这一点。我想我会在cookie/session中保留一个堆栈。根据糟糕的用户界面,这是另一个页面中的浮动iFrame。当您进入iFrame中的新页面时,您通常会返回(不更改主页面)。 – Sam 2008-12-31 20:34:53

3
document.location.href = document.referrer;