如何从DOM中卸载所有定义的对象的
JavaScript资源?
我开发了一个简单的框架,可以将html片段加载到“主”html中.每个片段都是自包含的,可能包含对其他JS和CSS文件的引用. JS和CSS资源被解析并动态添加到html中.当从DOM中删除/替换片段时,我想删除它的JS和CSS.
如果我删除下面示例中的脚本元素,page1.js中定义的函数仍然可用.
<html> <head> <script src="page1.js" type="text/javascript"></script> </head> <body> ...
有没有办法从DOM中卸载page1.js对象?
=========测试代码我使用=======
我尝试了我在下面的意见中提出的建议;使用清除功能删除添加的对象 – 但即使这样也会失败.我用来测试的来源:
<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源码:
var foo = function(){ alert("hello from foo"); }