我需要在同一个父页面中打开链接,而不是在新页面中打开它。
注意:iframe
和父网页属于同一个域。
答案 0 :(得分:579)
我发现最好的解决方案是使用 base 标记。将以下内容添加到iframe页面的头部:
<base target="_parent">
这将加载父窗口中页面上的所有链接。如果您希望在新窗口中加载链接,请使用:
<base target="_blank">
此标记在所有浏览器中均为fully supported。
答案 1 :(得分:135)
使用target-attribute:
<a target="_parent" href="http://url.org">link</a>
答案 2 :(得分:32)
使用JavaScript:
window.parent.location.href= "http://www.google.com";
答案 3 :(得分:22)
您可以使用任何选项
仅限父页:
如果您要将所有链接打开到父页面或父iframe,那么您可以在iframe的head部分中使用以下代码:
<base target="_parent" />
或强>
如果您想在父页面或父iframe中打开特定链接,请使用以下方式:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
或强>
嵌套iframe:
如果要在浏览器窗口中打开所有链接(在浏览器网址中重定向),则在iframe的head部分中使用以下代码:
<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>
或强>
如果您想在浏览器窗口中打开特定链接(在浏览器网址中重定向),请使用以下方式:
<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>
答案 4 :(得分:15)
有一个名为base
的HTML元素允许您:
为网页上的所有链接指定默认网址和默认目标:
<base target="_blank" />
通过指定_blank
,您可以确保 iframe 中的所有链接都在外面打开。
答案 5 :(得分:8)
如上所述,您可以使用目标属性,但在技术上已弃用XHTML。这让你使用javascript,通常是parent.window.location
。
答案 6 :(得分:7)
在target="_parent"
内尝试anchor tag
属性。
答案 7 :(得分:4)
最通用和最跨浏览的解决方案是避免使用&#34; base&#34;标记,而是使用&#34; a&#34;的目标属性。标签强>
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>
标记的功能较少,浏览器在文档中的位置要求不一致,需要进行更多的跨浏览器测试。根据您的项目和情况,实现<base>
标记的理想跨浏览器放置可能很困难甚至完全不可行。
使用target="_parent"
标记的<a>
属性执行此操作不仅对浏览器更友好,而且还允许您区分要在iframe中打开的链接以及您想要的那些链接在父母身上打开。
答案 8 :(得分:3)
<a target="parent">
将在新标签/窗口中打开链接... <a target="_parent">
将打开父/当前窗口中的链接,而无需打开新标签/窗口。 Don't_forget_that_underscore!
答案 9 :(得分:1)
如果您在网页中使用iframe,则在通过iframe中的HTML超链接(锚标记)更改整个页面时可能会遇到问题。有两种解决方案可以缓解这个问题。
解决方案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';">
请记住⇒target="_parent"
已在XHTML中弃用,但HTML 5.x仍然支持它。
可以从以下链接中读取更多信息 http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
答案 10 :(得分:1)
我找到了
<base target="_parent" />
这对于打开iframe中打开的所有iframe链接非常有用。
并且
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
这可以用于整页或页面的特定部分。
感谢大家的帮助。
答案 11 :(得分:0)
<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>
答案 12 :(得分:0)
尝试target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>