从 iFrame 加载顶部框架中的页面

Posted

技术标签:

【中文标题】从 iFrame 加载顶部框架中的页面【英文标题】:Load page in Top frame from iFrame 【发布时间】:2012-11-20 15:03:34 【问题描述】:

我正在使用fancybox,我希望它加载一个页面,当它加载该页面时,该页面会检查它是否在顶部框架中,如果不是,它会在顶部框架中重新加载,谁能告诉我我将如何实现这一目标?

这无法通过链接或表单完成,因为它是从服务器加载的。

我得到了以下代码,但它不起作用

<script type="text/javascript">
    <!--
    function breakout_of_frame()
        if (top.location != location) 
            parent.location.href = document.location.href ;
        
    
    -->
</script>
<body onload="breakout_of_frame()">

这个技巧是我要检查它是否在 iFrame 中的页面与顶部框架是同一页面

【问题讨论】:

你的意思是页面应该跳出fancybox并加载到页面顶部吗?如果是这样,在fancybox中加载它的想法是什么? @JFK 我正在fancybox 中加载页面,但如果出现错误,它会重定向回原始页面,所以我希望它再次正确显示页面并显示错误 【参考方案1】:

您可以使用关键字top 指代***别的框架,而self 指代包含当前文档的框架:

function breakout_of_frame() 
  if(top !== self) 
     top.location.href = location.href;
  

【讨论】:

以上是关于从 iFrame 加载顶部框架中的页面的主要内容,如果未能解决你的问题,请参考以下文章

iframe与srcdoc:同页链接加载框架中的父页面

如何从 iframe 重新加载最顶部的窗口?

从不同域的 iframe 滚动到父级顶部

页面跳转如何进入一个嵌套在Iframe中的页面中?

如何确定iframe中的页面在该iframe中的默认位置

用iframe框架调用了另一个页面,如何显示指定的某一块区域呢