我需要在同一父页面中打开链接,而不是在新页面中打开它。
注意:iframe
和父页面是同一个域。
我需要在同一父页面中打开链接,而不是在新页面中打开它。
注意:iframe
和父页面是同一个域。
Answers:
我发现最好的解决方案是使用base标签。将以下内容添加到iframe页面的顶部:
<base target="_parent">
这将在父窗口中加载页面上的所有链接。如果要在新窗口中加载链接,请使用:
<base target="_blank">
所有浏览器均完全支持此标记。
<base target>
应该在any之前<a href>
,因为它为以下链接设置了默认浏览上下文;<base href>
应该在任何URL引用(<* href>
<* src>
<form action>
<object data>
…)之前出现,因为它设置了解析相对URL所依据的基本URL。
<base
根据w3.org/TR/html5/document-metadata#the-base-element规范,该标签没有关闭,因此应为<base target="_parent" >
使用目标属性:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
可以,但是这里的问题是关于一个链接的,而不是关于更改iframe上所有链接的行为的。对我来说,这是正确的答案。
您可以使用任何选项
如果只有父页面:
如果要打开到父页面或父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>
如前所述,您可以使用target属性,但是XHTML在技术上已弃用该属性。这样您就可以使用javascript了,通常是parent.window.location
。
尝试target="_parent"
属性里面anchor tag
。
如果您在网页中使用iframe,则在通过iframe中的HTML超链接(anchor标记)更改整个页面时,可能会遇到问题。有两种解决方案可以缓解此问题。
解决方案1.您可以使用以下示例中给出的锚标记的target属性。
<a target="_parent" href="http://www.kriblog.com">link</a>
解决方案2。您还可以使用JavaScript从iframe在父窗口中打开新页面。
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
请记住,⇒ target="_parent"
在XHTML中已被弃用,但在HTML 5.x中仍支持。
可以从以下链接http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html中阅读更多内容
最通用,最跨浏览器的解决方案是避免使用“ base”标签,而使用“ a”标签的target属性:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
该<base>
标签的通用性较差,浏览器对其在文档中的位置要求不一致,需要进行更多的跨浏览器测试。根据您的项目和情况,要实现<base>
标签的理想跨浏览器放置可能很困难,甚至完全不可行。
使用标记的target="_parent"
属性执行此操作<a>
不仅对浏览器更友好,而且还使您可以区分要在iframe中打开的那些链接和要在父级中打开的那些链接。
尝试 target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
一样"_parent"
?