使用javascript从标头中删除javascript标签

时间:2012-06-22 18:56:37

标签: javascript css dom xhtml-1.1

假设我有一个主页,它使用iframe对象作为缓冲区来加载来自同一域的外部页面(出于安全原因)。 我选择了这种方法,因为XMLHttpRequest无法从所有浏览器中的字符串外部xhtml内容进行解析。

在iframe中加载内容后,我使用“contentDocument”属性“窃取”它的内容,然后将所有css样式和脚本标记附加到父标题,最后删除iframe(注意CSS和脚本在第二个文档中内联,因此根本没有外部链接。

现在一切都很好 - 我可以调用新的javascript函数,css也可以。

我的问题是:我能够管理删除新添加的CSS样式,但javascript不起作用。有没有解决方案从同一文档中删除标题新添加的脚本标记?

我甚至在绝望中试过这个(css消失了,javascript仍然存在......)

    function emptyheader()
    {
        /* var container = document.getElementById("container"); */

        var header = document.getElementsByTagName('head')[0];  

        /* styles = header.getElementsByTagName('style'); */
        /* scripts = header.getElementsByTagName('script'); */

          while(header.hasChildNodes())
          header.removeChild(header.firstChild);    
     }

1 个答案:

答案 0 :(得分:0)

我不是岸,我明白你的意思。但是这里有一个例子,说明如何添加然后重新编写脚本(据我所知,将脚本标记添加到正文中是很好的。)

<script>
function addAndRemoveScript() {
    var a = document.createElement("script");
    a.src = "yourscript.js";
    document.body.appendChild(a);
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
}
window.onload = addAndRemoveScript();
</script>