当前位置:  开发笔记 > 编程语言 > 正文

从iframe操作重定向父窗口

如何解决《从iframe操作重定向父窗口》经验,为你挑选了6个好方法。

我需要使用哪些JavaScript来从iframe重定向父窗口?

我希望他们单击​​一个超链接,使用JavaScript或任何其他方法,将超级父窗口重定向到新的URL.



1> 小智..:
window.top.location.href = "http://www.example.com"; 

如前所述,将重定向父iframe.


人们在这里遇到的错误是因为iframe的新HTML5属性被称为"`sandbox`" - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe`sandbox`属性可防止javascript根据允许操作的给定白名单在iframe中执行某些操作."allow-top-navigation"属性是您可以在白名单中启用的操作之一,它允许此代码工作.如果`sandbox`属性是abscent,则允许所有操作.如果它存在且为空字符串,则拒绝所有操作.
@BjarteAuneOlsen - 我相信这是因为JSFiddle上的iframe故意[沙盒](http://caniuse.com/#feat=iframe-sandbox)所以他们明确拒绝了某些功能(例如重定向等) - 有一个你使用JS导航远离JS Fiddle而失去工作的危险......

2> Click Upvote..:

我发现它link也有效


虽然选择的答案是正确的,但我认为这是问题意图的更好答案.此外,它将适用于已禁用JS的人员.
在asp.net中为我工作
如此简单而优雅.像魅力:)

3> Luca Matteis..:
window.top.location.href = "http://example.com";

window.top 指的是帧层次结构顶部页面的窗口对象.


window.top.location.href属性无法从Iframe更新,它会抛出访问被拒绝的execption.它只能在localhost上测试时执行
@Ummar不是真的,http://jsfiddle.net/ppkzS/是为了证明.您可以更改window.top.location.href.你无法阅读它.适用于镀铬.
@Ummar:我想补充一点,当父iframe具有相同的域,相同的端口(相同的源策略),它会在它们不同时抛出访问被拒绝的异常,以防止安全漏洞
我怀疑有些怀疑者可能在iframe中尝试了类似的东西:**window.top.location.href = window.top.location.href**;

4> Real Red...:

或者替代是以下(使用文档对象)

parent.document.location.href = "http://example.com";


该解决方案是针对Firefox的.一个人应该使用`parent.location.href = ...`.https://developer.mozilla.org/en/document.location

5> rDroid..:

target="_parent"对我来说很棒.轻松无忧!



6> 小智..:

@MIP是正确的,但是对于较新版本的Safari,您需要添加沙箱属性(HTML5)以提供对iFrame的重定向访问.可以通过它们之间的空格添加一些特定值.

参考(您需要滚动):https: //developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

例如:


推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有