Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有单个后退按钮的多个iFrame_Javascript_Button_Iframe_Browser History - Fatal编程技术网

Javascript 带有单个后退按钮的多个iFrame

Javascript 带有单个后退按钮的多个iFrame,javascript,button,iframe,browser-history,Javascript,Button,Iframe,Browser History,我有一个带有两个iFrame的站点,每个iFrame包含来自我的服务器的不同内容。我希望每个iframe都有一个只对其自身起作用的后退按钮,即backbutton_1只对frame_1起作用,backbutton_2只对frame_2起作用,等等 这些是我试图实现的方法,每一种都没有效果 将返回按钮放入带有onclick=history.back的iframe中 b使用onclick=iframe.contentWindow.history.back将后退按钮放入iframe c放回 使用onc

我有一个带有两个iFrame的站点,每个iFrame包含来自我的服务器的不同内容。我希望每个iframe都有一个只对其自身起作用的后退按钮,即backbutton_1只对frame_1起作用,backbutton_2只对frame_2起作用,等等

这些是我试图实现的方法,每一种都没有效果

将返回按钮放入带有onclick=history.back的iframe中

b使用onclick=iframe.contentWindow.history.back将后退按钮放入iframe

c放回 使用onclick=frame_1.history.back将按钮插入父站点 &onclick=frame_2.history.back

不幸的是,这些方法中的每一种都只在全球范围内发挥作用,而不是单独发挥作用


任何帮助都将不胜感激。

我认为您只能在同一域上使用iframe在有限的范围内进行单个iframe历史导航,但实际上这不是一个非常有用的机制,因为实际上只有一个历史序列,所以单个历史导航与全局历史导航冲突。一旦你偏离了一个历史序列,所有的东西都会被抹去,因此如果使用单独的导航,全球导航将是不可能的,否则它将破坏时空连续体的结构,摧毁整个宇宙

想象一下,如果您有一个父页面a和两个iFrame B和C,并且您像这样向前导航:

步骤1:A查看第1页,B查看第2页,C查看第3页

第二步:A浏览第1页,B浏览第2页,C浏览第4页

第三步:A浏览第1页,B浏览第5页,C浏览第4页

第四步:A浏览第1页,B浏览第5页,C浏览第6页

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

使用单个历史记录的场景:如果我们使用单个按钮导航,并按下iframe C上的后退按钮两次,您可能会期望在单个级别上,C移动到第4页,在第2步中,iframe B将留在第5页。现在用户将B导航到第7页。现在,全局和单个历史按钮可能会相互冲突,因为您可能会认为,按C可以返回到第3页第1步中的内容,但是全局返回会将两个iFrame移到哪里


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

我理解您所面临的困境,@guymid。你认为有没有办法让iFrame创建的后退按钮完全独立工作?也许按钮可以只知道其iframe的历史,而不知道页面的全局历史?我开始觉得我应该远离历史。完全回到过去。这里有一个iFrame的例子,带有单独的后退按钮,但前进按钮不起作用。我与页面的创建者交谈,他试图帮助我解决我的问题,但这对我来说有点太复杂了。对不起,我的意思是要在我的答案中添加一个实际的解决方案,我认为你必须在自己的代码中跟踪,但请注意,两种导航类型的混合可能会混淆用户。我现在已经在答案中添加了这一点。