如何强制在父窗口中打开iframe的链接

时间:2009-06-24 11:43:11

标签: html iframe hyperlink html-target

我需要在同一个父页面中打开链接,而不是在新页面中打开它。

注意:iframe和父网页属于同一个域

13 个答案:

答案 0 :(得分:579)

我发现最好的解决方案是使用 base 标记。将以下内容添加到iframe页面的头部:

<base target="_parent">

这将加载父窗口中页面上的所有链接。如果您希望在新窗口中加载链接,请使用:

<base target="_blank">

此标记在所有浏览器中均为fully supported

答案 1 :(得分:135)

使用target-attribute:

<a target="_parent" href="http://url.org">link</a>

答案 2 :(得分:32)

使用JavaScript:

window.parent.location.href= "http://www.google.com";

答案 3 :(得分:22)

您可以使用任何选项

仅限父页:

如果您要将所有链接打开到父页面或父iframe,那么您可以在iframe的head部分中使用以下代码:

<base target="_parent" />

如果您想在父页面或父iframe中打开特定链接,请使用以下方式:

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

嵌套iframe:

如果要在浏览器窗口中打开所有链接(在浏览器网址中重定向),则在iframe的head部分中使用以下代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
    $(window).load(function(){
        $("a").click(function(){
            top.window.location.href=$(this).attr("href");
            return true;
        })
    })
</script>

如果您想在浏览器窗口中打开特定链接(在浏览器网址中重定向),请使用以下方式:

<a  href="http://specific.org"   target="_top" >specific Link</a>

<a  href="javascript:top.window.location.href='your_link'">specific Link</a>
<a  href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

答案 4 :(得分:15)

有一个名为base的HTML元素允许您:

  

为网页上的所有链接指定默认网址和默认目标:

<base target="_blank" />

通过指定_blank,您可以确保 iframe 中的所有链接都在外面打开。

答案 5 :(得分:8)

如上所述,您可以使用目标属性,但在技术上已弃用XHTML。这让你使用javascript,通常是parent.window.location

答案 6 :(得分:7)

target="_parent"内尝试anchor tag 属性

答案 7 :(得分:4)

最通用和最跨浏览的解决方案是避免使用&#34; base&#34;标记,而是使用&#34; a&#34;的目标属性。标签

<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>

<base>标记的功能较少,浏览器在文档中的位置要求不一致,需要进行更多的跨浏览器测试。根据您的项目和情况,实现<base>标记的理想跨浏览器放置可能很困难甚至完全不可行。

使用target="_parent"标记的<a>属性执行此操作不仅对浏览器更友好,而且还允许您区分要在iframe中打开的链接以及您想要的那些链接在父母身上打开。

答案 8 :(得分:3)

<a target="parent">将在新标签/窗口中打开链接... <a target="_parent">将打开父/当前窗口中的链接,而无需打开新标签/窗口。 Don't_forget_that_underscore!

答案 9 :(得分:1)

如果您在网页中使用iframe,则在通过iframe中的HTML超链接(锚标记)更改整个页面时可能会遇到问题。有两种解决方案可以缓解这个问题。

解决方案1.您可以使用锚标记的目标属性,如以下示例所示。

<a target="_parent" href="http://www.kriblog.com">link</a>

解决方案2.您还可以使用JavaScript从iframe在父窗口中打开新页面。

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

请记住⇒target="_parent"已在XHTML中弃用,但HTML 5.x仍然支持它。

可以从以下链接中读取更多信息 http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html

答案 10 :(得分:1)

我找到了

<base target="_parent" />

这对于打开iframe中打开的所有iframe链接非常有用。

并且

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

这可以用于整页或页面的特定部分。

感谢大家的帮助。

答案 11 :(得分:0)

   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>

答案 12 :(得分:0)

尝试target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>