将iframe文档转换为父文档

时间:2011-03-13 11:29:44

标签: javascript iframe

抱歉粗略的标题。我的文档中有一个iframe。我希望在某些事件中,iframe会破坏自己成为父(主)文档。例如,运行以下代码

var el = document.createElement("iframe");
el.setAttribute('id', 'ifrm');
document.body.appendChild(el);
el.setAttribute('src', 'http://www.gmail.com');

一段时间后或登录后,iframe消失并代替主文档。我怎样才能获得相同的行为?

2 个答案:

答案 0 :(得分:2)

您正在寻找framekiller

答案 1 :(得分:0)

即使通过一些复杂的javascript黑客可以实现这一点,我也不知道这是否可取。如果用户点击后退按钮会发生什么,您现在要尝试将所有内容放回iframe中并恢复原始文档吗?

我认为,为了保持大多数人习惯的方式和最有用的方式,最好将父窗口重定向到您想要访问的src网址。

此外,一旦用户在iframe中的某个位置导航,您将不再知道用户所在的位置,除非它位于同一个域中。这是一个安全限制,没有办法绕过它。

这是怎么回事?

//From inside the iframe to set parent to gmail.com
window.top.location.assign('http://www.gmail.com')

//From inside the iframe to set parent to the current iframe location
window.top.location.assign(window.location.href)

//From the parent document to gmail.com
window.location.assign('http://www.gmail.com')

//From the parent document to the iframe location (if iframe is same domain)
window.location.assign(window.frames[0].location.href)