如何强制在父窗口中打开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