多个iframe带有单独的后退按钮

时间:2013-11-26 23:33:40

标签: javascript button iframe browser-history

我有一个包含两个iframe的网站,每个iframe包含来自我服务器内部的不同内容。我希望发生的是每个iframe都有一个仅适用于自身的后退按钮,即backbutton_1仅适用于frame_1backbutton_2仅适用于frame_2

这些是我试图实施的方法,但都无济于事。

  • a)使用onclick =“history.back()”将后退按钮放入iframe

  • b)使用onclick="iframe.contentWindow.history.back()"

  • 将后退按钮放入iframe
  • c)放回去 使用onclick="frame_1.history.back()" & onclick="frame_2.history.back()"

  • 进入父网站的按钮

不幸的是,这些方法中的每一种都只能全局而不是单独使用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为你只能在同一个域上使用iframe在有限的范围内进行单独的iframe历史导航,但实际上它不是一个非常有用的机制,因为实际上只有一个历史序列,所以个别历史导航与全局冲突历史导航。一旦你从一个历史序列中分离出来之后它就会被删除,所以如果使用个别导航,那么全局导航将是不可能的(否则它将解开时空连续体的结构并摧毁整个宇宙)。

想象一下,如果你有一个父页A和两个iframe B和C,你就像这样导航:

步骤1:观看页面1,B页面2和C页面3

步骤2:视图页面1,B页面2和C导航到4

步骤3:视图页面1,B导航到5和C页面4

步骤4:视图页面1,B页面5和C导航到6

使用全局历史记录的场景:如果我们使用浏览器返回按钮向后导航两次到第2步作为一个整体,你希望B显示第2页和第4页,如果你前进到第3步,你得到B显示5和C显示4.现在用户将C导航到第1页。用户现在已经删除了此后的任何历史记录,因为我们已经分叉了历史记录,因此没有全局转发(它变为灰色)。我们可以导航回到第3步,第2步和第1步,我们可以从第3步向前导航到新步骤4(B显示5和C显示1)。

使用个人历史记录的场景:如果我们使用单个按钮导航,并按下iframe C上的后退按钮两次,您可能会在单个级别上预期C将移至第4页(步骤2中的位置)和iframe B现在用户将B导航到第7页。现在全局和个人历史记录按钮会发生冲突,因为您可能希望按回C可以返回到第3页(步骤1中的内容),但是全球Back会将两个iframe移动到哪里?

如果您想要真正独立的iframe历史记录,我认为您需要在代码中跟踪用户的导航,但请注意,由于上述冲突,全局导航将很奇怪。