我需要在相同的父页面中打开链接,而不是在一个新页面中打开它。
注意:iframe和父页是相同的领域。
iframe
使用目标属性:
<a target="_parent" href="http://url.org">link</a>
在anchor tag中尝试target="_parent" 属性。
anchor tag
target="_parent"
如前所述,您可以使用目标属性,但从技术上讲,它在XHTML中已被弃用。这就剩下使用javascript了,通常是parent.window.location之类的东西。
parent.window.location
有一个名为base的HTML元素,它允许你:
base
为页面上的所有链接指定默认URL和默认目标:
<base target="_blank" />
通过指定_blank,可以确保iframe内的所有链接都将在外部打开。
_blank
我发现最好的解决方案是使用基地标签。在iframe的页面头部添加以下内容:
<base target="_parent">
这将在父窗口中加载页面上的所有链接。如果你想要你的链接加载在一个新的窗口,使用:
<base target="_blank">
浏览器支持
使用JavaScript:
window.parent.location.href= "http://www.google.com";
<a target="parent">将在一个新的标签/窗口中打开链接…<a target="_parent">将打开父/当前窗口中的链接,而不会打开新的选项卡/窗口。唐't_forget_that_underscore !
<a target="parent">
<a target="_parent">
最通用和最跨浏览器的解决方案是避免使用“base”标记,而是使用“a”标记的目标属性:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>标记不太通用,浏览器对其在文档中的位置要求不一致,需要更多的跨浏览器测试。根据您的项目和情况,实现<base>标记的理想跨浏览器位置可能很困难,甚至完全不可行的。
<base>
使用<a>标记的target="_parent"属性这样做不仅更加浏览器友好,而且还允许你区分那些你想在iframe中打开的链接,以及那些你想在父类中打开的链接。
<a>
如果你在你的网页中使用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 < / p >
你可以使用任何选项
如果只有父页面:
如果你想打开所有链接到父页面或父iframe中,那么你在iframe的头部部分使用以下代码:
<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的头部部分使用以下代码:
<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>
是的,我找到了
这对于打开在iframe中打开的所有iframe链接很有用。
和
$(window).load(function(){ $("a").click(function(){ top.window.location.href=$(this).attr("href"); return true; }) })
这可以用于整个页面,也可以用于页面的特定部分。
谢谢你们的帮助。
<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>
尝试target="_top"
target="_top"
<a href="http://example.com" target="_top"> This link will open in same but parent window of iframe. </a>
我找到了一个简单的解决办法
<iframe class="embedded-content" sandbox="allow-top-navigation"></iframe>