392

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

注意:iframe和父页面是同一个域

4

13 回答 13

681

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

<base target="_parent">

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

<base target="_blank">

浏览器支持

于 2010-04-17T00:52:37.687 回答
164

使用目标属性:

<a target="_parent" href="http://url.org">link</a>
于 2009-06-24T11:51:01.990 回答
40

使用 JavaScript:

window.parent.location.href= "http://www.google.com";
于 2012-08-03T04:15:11.450 回答
38

您可以使用任何选项

如果只有父页面:

如果要打开所有链接到父页面或父 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 的情况下:

如果要打开浏览器窗口的所有链接(在浏览器 url 中重定向),则在 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>

或者

如果要在浏览器窗口中打开特定链接(在浏览器 url 中重定向),则使用以下方式:

<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>
于 2015-09-12T06:25:05.160 回答
19

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

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

<base target="_blank" />

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

于 2009-09-10T07:42:29.063 回答
7

试试里面的target="_parent" 属性anchor tag

于 2009-06-24T11:51:33.080 回答
7

如前所述,您可以使用目标属性,但从技术上讲,它在 XHTML 中已被弃用。这样你就可以使用 javascript,通常是parent.window.location.

于 2009-06-25T06:59:18.903 回答
6

最通用和最跨浏览器的解决方案是避免使用“base”标签,而是使用“a”标签的 target 属性:

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

<base>标签的通用性较差,并且浏览器对其在文档中放置的要求不一致,需要更多的跨浏览器测试。根据您的项目和情况,实现<base>标签的理想跨浏览器放置可能很困难,甚至完全不可行。

target="_parent"使用标签的属性这样做<a>不仅对浏览器更加友好,而且还可以让您区分要在 iframe 中打开的链接和要在父级中打开的链接。

于 2014-10-28T19:21:53.037 回答
6

如果您在网页中使用 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

于 2015-06-21T09:15:22.187 回答
3

<a target="parent">将在新选项卡/窗口中<a target="_parent">打开链接...将在父/当前窗口中打开链接,而不打开新选项卡/窗口。不要忘记那个下划线!

于 2013-10-30T16:45:51.943 回答
2

是的,我找到了

<base target="_parent" />

这对于打开在 iframe 中打开的所有 iframe 链接很有用。

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

我们可以将其用于整个页面或页面的特定部分。

感谢你的帮助。

于 2015-10-22T04:13:42.410 回答
1

尝试target="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>
于 2017-05-19T19:13:06.813 回答
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>
于 2017-01-14T08:20:32.213 回答