从html页面删除javascript

时间:2014-09-11 09:18:50

标签: javascript jquery html

我想动态地在我的html页面上卸载一个特定的脚本(example.js),我可以通过

var elem = document.getElementById("scid");

elem.parentElement.removeChild(elem);

其中 scid 是脚本ID

但是stll脚本的元素仍然存在,因为脚本一旦执行就会在删除标记后保留其属性。

有没有办法彻底删除所有元素和属性的javascript?

3 个答案:

答案 0 :(得分:4)

正如您所发现的,一旦脚本运行,它定义的内容就是JavaScript环境的一部分(如果代码创建并添加DOM元素,则可能是DOM的一部分)。该代码未连接到script元素(可以在不影响它的情况下将其删除)。

没有简单的方法。您必须找出脚本的功能,然后单独撤消这些内容。例如,如果脚本创建全局函数foobar,则在resize上挂钩window事件,并在页面上创建新元素,您必须设置{{ 1}}和foobar,删除undefined处理程序(如果您没有引用它们用来挂钩它的函数,这可能很棘手),并删除页面上的新元素。

答案 1 :(得分:0)

我建议尝试使用像RequiredJs(http://requirejs.org/)之类的东西 - 这样的库你可以以模块的形式动态加载javascript代码。由于该模块是一个对象,一旦你不需要它,你可以处理它。

它有更多的优点,例如缓存,延迟加载脚本......我建议看看它是否适合你的需要。

答案 2 :(得分:0)

你可以定义一种方法来让javascript代码从javascript和dom env中破坏自己。

样本可以是:

<script>
    var sample = {
        destroy:function(){/*no matter what it has to clean*/}
    };

</script>

然后在另一段代码中:

sample.destroy();