繁体   English   中英

如何从自身内部删除iframe(已通过src动态创建并加载了iframe)

[英]How do I remove an iframe from within itself (that has been dynamically created and loaded with src)

我希望能够从自身内部删除iframe。 iframe是动态创建的,其内容会加载“ src”。

我这样创建我的iframe:

    var i = document.createElement('iframe');
    i.id = 'proxy_frame';
    i.name = 'proxy_frame';
    i.setAttribute('src', url);
    document.body.appendChild(i);

然后从“ URL”中,我希望能够删除/关闭iframe。

在使用src将数据加载到iframe之前,我使用了document.write:

    window.frames['proxy_frame'].document.write(html);

然后我很想通过以下方式删除iframe:

    window.parent.document.getElementById("proxy_frame").parentNode.removeChild(window.parent.document.getElementById("proxy_frame"));

但这不适用于“ src”。

注意:这是用于书签的,因此我不想使用jQuery或其他库。

对于本地域iframes您无需依赖ID。

window.parent.document.body.removeChild(window.frameElement);

window.frameElement具有合理的支持https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement

在父页面中定义方法

function removeElement() {
  var d = document.getElementById('body'); // or any other parent element
  var proxy_frame = document.getElementById('proxy_frame');
  d.removeChild(proxy_frame);
}

要从iframe调用此方法,只需使用此方法

<a href="#" onclick="top.window.removeElement();">Remove me</a>

只要父页面位于其他域中,就无法访​​问它。

在您的网站上设置一个可用于删除iframe的页面,然后在iframe中直接转到该页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM