从iframe阻止任意元素

时间:2013-03-09 16:53:23

标签: javascript html google-chrome iframe allow-same-origin

有没有办法阻止特定的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事件附加到非创建的元素?

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

1 个答案:

答案 0 :(得分:1)

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

您说您可以完全访问iframe内容,因此我假设您的实施遵循same origin policy