如何强制在父窗口中打开iframe的链接

我需要在同一个父页面中打开链接,而不是在新页面中打开它。

注意: iframe和父页面是相同的域

我发现最好的解决scheme是使用基本标签。 将以下内容添加到iframe中的页面头部:

 <base target="_parent"> 

这将加载父窗口页面上的所有链接。 如果您希望链接在新窗口中加载,请使用:

 <base target="_blank"> 

所有浏览器都支持该标签。

使用目标属性:

 <a target="_parent" href="http://url.org">link</a> 

使用JavaScript:

 window.parent.location.href= "http://www.google.com"; 

您可以使用任何选项

如果只有父页面:

如果要打开所有链接到父页面或父页面的iframe,则在iframe的头部分使用以下代码:

<base target="_parent" />

要么

如果你想打开一个特定的链接到父页面或父页面,那么你使用下面的方法:

 <a target="_parent" href="http://specific.org">specific Link</a> <a href="http://normal.org">Normal Link</a> 

要么

在嵌套iframe的情况下:

如果要打开浏览器窗口中的所有链接 (在浏览器url中redirect),则在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> 

要么

如果你想打开一个特定的链接到浏览器窗口(在浏览器urlredirect),那么你使用下面的方式:

 <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> 

如上所述,您可以使用目标属性,但在技术上已经在XHTML中弃用了。 这使您使用JavaScript,通常像parent.window.location

有一个名为base的DOM对象,它允许您:“指定页面上所有链接的默认URL和默认目标:”

 <base target="_blank" /> 

通过指定“_blank”,确保iframe中的所有链接都将在外部打开。

anchor tag尝试target="_parent" 属性

最通用和最具跨浏览器的解决scheme是避免使用“基本”标签,而是使用“a”标签的目标属性:

 <a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a> 

<base>标签的通用性较差,浏览器在文档中的位置要求不一致,需要更多的跨浏览器testing。 根据您的项目和情况,实现<base>标记的理想跨浏览器放置可能很困难,甚至完全不可行。

使用<a>标签的target="_parent"属性进行此操作不仅更加适合浏览器,还可以区分要在iframe中打开的链接以及要在父项中打开的链接。

<a target="parent">将在新标签页/窗口中打开链接… <a target="_parent">将在父/当前窗口中打开链接,而无需打开新的标签页/窗口。 Don't_forget_that_underscore!

是的,我发现了

 <base target="_parent" /> 

这对打开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"

 <a href="http://example.com" target="_top"> This link will open in same but parent window of iframe. </a> 

如果您在网页中使用iframe,则可能会在通过iframe中的HTML超链接(锚点标记)更改整个页面时遇到问题。 有两个解决scheme来缓解这个问题。

解决scheme1.您可以使用以下示例中给出的锚标记的target属性。

 <a target="_parent" href="http://www.kriblog.com">link</a> 

解决scheme2.您也可以在JavaScript中使用iframe在父窗口中打开一个新页面。

 <a href="#" onclick="window.parent.location.href='http://www.kriblog.com';"> 

记住⇒target target="_parent"已经在XHTML中被弃用了,但它仍然在HTML 5.x中被支持。

更多可以从以下链接阅读http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html