我需要在相同的父页面中打开链接,而不是在一个新页面中打开它。
注意:iframe和父页面是同一个域。
我需要在相同的父页面中打开链接,而不是在一个新页面中打开它。
注意:iframe和父页面是同一个域。
当前回答
如前所述,您可以使用目标属性,但从技术上讲,它在XHTML中已被弃用。这就需要使用javascript,通常是parent.window.location。
其他回答
我找到了一个简单的解决办法
<iframe class="embedded-content" sandbox="allow-top-navigation"></iframe>
allow-top-navigation 允许iframe更改parent.location。 更多信息https://javascript.info/cross-window-communication
如前所述,您可以使用目标属性,但从技术上讲,它在XHTML中已被弃用。这就需要使用javascript,通常是parent.window.location。
最通用和最跨浏览器的解决方案是避免使用“base”标记,而是使用“a”标记的目标属性:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>标记不太通用,浏览器对其在文档中的位置要求不一致,需要进行更多的跨浏览器测试。根据您的项目和情况,实现<base>标记的理想跨浏览器位置可能很困难,甚至完全不可行的。
使用<a>标记的target="_parent"属性来实现这一点不仅更加浏览器友好,而且还允许您区分想要在iframe中打开的链接和想要在父元素中打开的链接。
是的,我找到了
<base target="_parent" />
这对于打开在iframe中打开的所有iframe链接很有用。
And
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
这可以用于整个页面,也可以用于页面的特定部分。
谢谢你们的帮助。
我发现最好的解决方案是使用基本标签。在iframe的页面头部添加以下内容:
<base target="_parent">
这将在父窗口中加载页面上的所有链接。如果你想要你的链接加载在一个新的窗口,使用:
<base target="_blank">
浏览器支持