如何从自身中删除 iframe(已动态创建并使用 src 加载)
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 或其他库。
在父页面中定义方法
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>
对于本地域iframes
,您不需要依赖 id。
window.parent.document.body.removeChild(window.frameElement);
window.frameElement
有合理的支持 https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement
只要父页面位于其他网域中,您就无法访问该父网页。
在您的网站中设置一个可用于删除 iframe 的页面,然后在 iframe 中转到该页面。
相关文章:
- 如何在javascript中创建动态json对象
- 如何创建动态ajax提交表单
- 如何在javascript中创建动态正则表达式
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 如何在jquery mobile中使用json文件创建动态下拉菜单
- 基于所选下拉列表值创建动态复选框
- 使用推动创建动态对象
- 在浏览器窗口中创建动态灵活的分割标记
- 将字符串与integer连接,用作jquery中的变量(创建动态变量)
- 创建动态javascript对象
- 如何使用指令属性值创建动态模板
- 使用 JavaScript 创建动态下拉列表
- 如何在创建动态 HTML 页面时使用日期选择器
- 使用javascript中的append创建动态下拉列表
- Jquery - 创建动态名称选择器
- 如何根据查询字符串值创建动态超链接
- 使用javascript创建动态多维关联数组
- 使用javascript创建动态二级下拉列表
- 在JavaScript中创建动态绑定
- 在JS中创建动态对象