Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从标题中删除javascript标记_Javascript_Css_Dom_Xhtml 1.1 - Fatal编程技术网

使用javascript从标题中删除javascript标记

使用javascript从标题中删除javascript标记,javascript,css,dom,xhtml-1.1,Javascript,Css,Dom,Xhtml 1.1,假设我有一个主页,出于安全原因,它使用iframe对象作为缓冲区从同一域加载外部页面。 我选择这种方法是因为XMLHttpRequest无法在所有浏览器中解析字符串外部xhtml内容 在将内容加载到iframe中之后,我使用contentDocument属性窃取它的内容,然后将所有css样式和脚本标记附加到父文档的标题中,并最终删除iframe注意,css和脚本在第二个文档中是内联的,因此根本没有外部链接 现在一切都很好——我可以调用新的javascript函数和css 我的问题是:我能够设法删

假设我有一个主页,出于安全原因,它使用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);    
     }

我不明白你的意思。但这里有一个示例,说明了如何添加脚本,然后删除脚本,据我所知,将脚本标记添加到正文中是可行的

<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>

我确信我以前在stack over flow中看到过同样的问题,请在Javascript运行后再次搜索,删除它不会撤销它所做的事情。我不希望它撤销它所做的事情,我只想在不需要脚本子项时从标题中删除它们。您的意思是“从其他域上具有源的其他帧中删除脚本?”是或否我想删除从iframe加载的脚本。C++中的类比:*my_object=新建对象对对象执行一些操作-删除my_objectNo,脚本不是外部的,它们在第二个文档中是内联的-正如我已经提到的。我想加载一个嵌入了css/javascript的外部文档,然后在不需要的时候删除它们。这只是一个如何从HTML中添加和删除脚本标记的示例。很难,javascript仍然可以工作,因为它在DOM中,我现在看到这是您的问题。。。因此,我没有解决方案,我认为一旦它出现,就不可能禁用它。我明白了,但这不是很讽刺吗?您可以删除外部脚本-根据您的示例,但不允许删除内联脚本:Dragos Dutu,您可以使用此技术删除任何脚本标记,甚至内联脚本请注意,我说的是标记。问题是,一旦加载javascript,它将以任何方式工作,即使脚本标记被删除。也许您最好将External页面保留在iframe中,并在其顶部设置一个绝对/固定位置的菜单。然后用新页面重新加载iframe。是的,你完全正确。我只是希望有另一种可以利用的解决方案/技术。但iframe的问题在于,当您将它们嵌入到一些可拖动的窗口中时,可能是div、table或其他类型,那么拖动过程就会变得非常缓慢,因为浏览器必须在单独的上下文中实例化iframe。我多年来一直在寻找替代方案,似乎没有其他方法可以做到这一点,除了iframe/object,正如我所说,iframe/object是最糟糕的替代方案。