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

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


当前回答

你可以使用任何选项

如果只有父页面:

如果你想打开父页面或父iframe的所有链接,那么你可以在iframe的头部部分使用以下代码:

<base target="_parent" />

OR

如果你想打开一个特定的链接到父页面或父iframe,那么你可以使用以下方法:

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

OR

在嵌套iframe的情况下:

如果想打开所有链接到浏览器窗口(重定向在浏览器url),那么你在iframe头部部分使用以下代码:

<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>

OR

如果你想打开一个特定的链接到浏览器窗口(重定向在浏览器url),那么你可以使用以下方式:

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

or

<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>

其他回答

有一个HTML元素叫做base,它允许你:

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

<base target="_blank" />

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

使用目标属性:

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

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

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

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

使用<a>标记的target="_parent"属性来实现这一点不仅更加浏览器友好,而且还允许您区分想要在iframe中打开的链接和想要在父元素中打开的链接。

使用JavaScript:

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

尝试在锚标记内的target="_parent"属性。