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

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


当前回答

是的,我找到了

<base target="_parent" />

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

And

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

这可以用于整个页面,也可以用于页面的特定部分。

谢谢你们的帮助。

其他回答

<a target="parent">将在新选项卡/窗口中打开链接…<a target="_parent">将在父/当前窗口中打开链接,而不会打开新的选项卡/窗口。唐't_forget_that_underscore !

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

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

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

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

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

试目标= " _top "

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