javascript - 阻止来自 Iframe 的任意元素

标签 javascript html google-chrome iframe same-origin-policy

有什么方法可以阻止将特定 HTML 元素创建到 IFrame 中吗?

我没有使用 JQuery,但我不介意使用它。

我的基本代码如下:

<iframe id="id_frame_01" src="somepage"></iframe>
<script type="text/javascript>

frame = document.getElementById('id_frame_01').contentWindow.document;

frame.onload = function(){
    var toremove = frame.getElementsByTagName('iframe');
    toremove.outerHTML = '';
    toremove = frame.getElementsByTagName('object');
    toremove.outerHTML = '';
}

</script>

我拥有对 iframe 内容的完全访问权限,但如果我尝试在 onload 事件后手动删除元素,则 onload 事件会超出范围,并且(示例)YouTube 视频将开始播放。

我知道要删除的元素的 ID,但我不想使用它们,因为网站“更新”可能会破坏系统。 相反,我更喜欢按元素类型进行过滤。

这是一个特定于浏览器的页面,仅限 Chrome。

有没有办法将 onchange 事件附加到未创建的元素?

有没有办法拦截元素的加载?

最佳答案

您可以使用 ajax(或带有 jQ​​uery 的 $.ajax),而不是直接在 iframe 中加载页面。这将允许您过滤页面 html 并仅注入(inject)您希望用户看到的内容。

您说您拥有对 iframe 内容的完全访问权限,因此我假设您的实现遵循 same origin policy .

关于javascript - 阻止来自 Iframe 的任意元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313344/

相关文章:

javascript - 如何转置 HTML 表格?

javascript - 将红色标题附加到边框的顶部

javascript - 如何激活模式以在所有 3 个按钮上单击而不是只用一个按钮打开?

javascript - 浏览器请求和 curl 请求有什么区别?

jquery - OnEventSave 在 dhtmlx 调度程序中多次触发

javascript - 我们如何根据 React Native 中的列表项内容为 FlatList 提供自动高度

javascript - 具有不同名称的一组复选框的 jQuery 验证方法

javascript - 鼠标悬停时附加事件监听器

javascript - 将 Userscript 转换为解压的 Chrome 扩展

javascript - 无法使用 chrome.app.window.get 获取 chrome.window 实例