我需要在相同的父页面中打开链接,而不是在一个新页面中打开它。
注意:iframe和父页面是同一个域。
我需要在相同的父页面中打开链接,而不是在一个新页面中打开它。
注意:iframe和父页面是同一个域。
当前回答
最通用和最跨浏览器的解决方案是避免使用“base”标记,而是使用“a”标记的目标属性:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>标记不太通用,浏览器对其在文档中的位置要求不一致,需要进行更多的跨浏览器测试。根据您的项目和情况,实现<base>标记的理想跨浏览器位置可能很困难,甚至完全不可行的。
使用<a>标记的target="_parent"属性来实现这一点不仅更加浏览器友好,而且还允许您区分想要在iframe中打开的链接和想要在父元素中打开的链接。
其他回答
有一个HTML元素叫做base,它允许你:
为页面上的所有链接指定默认URL和默认目标:
<base target="_blank" />
通过指定_blank,可以确保iframe内的所有链接都将在外部打开。
如果你在你的网页中使用iframe,你可能会遇到一个问题,而改变整个页面通过HTML超链接(锚标签)从iframe。有两种解决方案可以缓解这个问题。
解决方案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';">
记住,在XHTML中,target="_parent"已弃用,但在HTML 5.x中仍然支持。
更多信息可从以下链接阅读 http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
我找到了一个简单的解决办法
<iframe class="embedded-content" sandbox="allow-top-navigation"></iframe>
allow-top-navigation 允许iframe更改parent.location。 更多信息https://javascript.info/cross-window-communication
<a target="parent">将在新选项卡/窗口中打开链接…<a target="_parent">将在父/当前窗口中打开链接,而不会打开新的选项卡/窗口。唐't_forget_that_underscore !
使用目标属性:
<a target="_parent" href="http://url.org">link</a>