首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从html中卸载javascript?

如何从html中卸载javascript?
EN

Stack Overflow用户
提问于 2010-12-06 17:47:44
回答 5查看 37.6K关注 0票数 26

如何从DOM中卸载包含所有已定义对象的JavaScript资源?

我正在开发一个简单的框架,可以将html片段加载到一个“主”html中。每个片段都是自包含的,并且可以包含对其他JS和CSS文件的引用。JS和CSS资源被解析并动态地添加到html。当从DOM中删除/替换该片段时,我希望删除它的JS和CSS。

如果我删除下面示例中的script元素,在page1.js中定义的函数仍然可用。

代码语言:javascript
复制
<html>
  <head>
    <script src="page1.js" type="text/javascript"></script>
  </head>
<body>
...

有没有办法从DOM卸载page1.js对象?

使用=======对测试代码执行=========

我尝试了我在下面的评论中得到的建议:使用清理函数删除添加的对象-但即使这样也失败了。我用来测试的源码:

代码语言:javascript
复制
<html>
<head>
<script type="text/javascript">
    function loadJSFile(){
        var scriptTag = document.createElement("script");
        scriptTag.setAttribute("type", "text/javascript");
        scriptTag.setAttribute("src", "simple.js");

        var head = document.getElementsByTagName("head")[0];
        head.appendChild(scriptTag);
    }

    function unloadJSFile(){            
        delete window.foo;
        delete window.cleanup;
        alert("cleanedup. typeof window.foo is " + (typeof window.foo));
    }
</script>
</head>
<body>

  Hello JavaScript Delete

  <br/>
  <button onclick="loadJSFile();">Click to load JS</button>
  <br/>
  <button onclick="foo();">call foo()</button>
  <br/>
  <button onclick="unloadJSFile();">Click to unload JS</button>

</body>
</html>

simple.js来源:

代码语言:javascript
复制
var foo = function(){
    alert("hello from foo");
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4365062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档