[英]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.