移除动态引用的js文件, 并使移除的js文件里面声明的变量变成未声明
如题, 我以以下代码动态添加了js文件
移除用的以下代码
虽然html代码里面js引用确实被删除了, 但是实际上这个js文件并没有被移除, 在被移除的js文件里面声明的全局变量还是可以使用
到底是我的移除js文件有问题还是说需要另外去删除js引用...
if($.includeMap[file] != null){
// 文件已经加载了;
return ;
}
$.includeMap[file] = 1;
var files = typeof file == "string" ? [file] : file;
for (var i = 0; i < files.length; i++) {
var name = files[i].replace(/^\s|\s$/g, "");
var att = name.split('.');
var ext = att[att.length - 1].toLowerCase();
var isCSS = ext == "css";
var tag = isCSS ? "link" : "script";
var attr = isCSS ? " type='text/css' rel='stylesheet' " : " type='text/javascript' ";
var link = (isCSS ? "href" : "src") + "='" + name + "'";
if ($(tag + "[" + link + "]").length == 0) $("head").append("<" + tag + attr + link +"></" + tag + ">");
}
移除用的以下代码
for(var obj in $.includeMap) {
if(obj != "js/lang/" + $.language + ".js") {
var files = typeof obj == "string" ? [obj] : obj;
for (var i = 0; i < files.length; i++) {
var name = files[i].replace(/^\s|\s$/g, "");
var att = name.split('.');
var ext = att[att.length - 1].toLowerCase();
var isCSS = ext == "css";
var tag = isCSS ? "link" : "script";
var link = (isCSS ? "href" : "src") + "='" + name + "'";
if ($(tag + "[" + link + "]").length != 0) {
$(tag + "[" + link + "]").remove();
delete $.includeMap[obj];
}
}
}
}
虽然html代码里面js引用确实被删除了, 但是实际上这个js文件并没有被移除, 在被移除的js文件里面声明的全局变量还是可以使用
到底是我的移除js文件有问题还是说需要另外去删除js引用...
...全文
相关推荐
vue项目里面引用svg文件并给svg里面的元素赋值
总结,要在Vue项目中引用SVG文件并给SVG元素赋值,首先要确保SVG文件的格式正确,然后在Vue组件中引入SVG内容,最后利用JavaScript操作DOM实现元素的赋值。
JavaScript中变量的相互引用
为了正确地移除节点并释放内存,应该使用 `removeChild` 方法。总结来说,JavaScript中的变量相互引用主要涉及到引用类型的特性,特别是对于对象、数组和DOM节点的处理。
JavaScript中的变量定义与储存介绍
在严格模式下,如果未声明的变量被赋值,JavaScript引擎会抛出错误而不是创建一个新的全局变量。这使得开发者更有可能捕获潜在的错误,并减少全局命名空间的污染。
JavaScript中变量声明有var和没var的区别示例介绍
如果在声明时同时赋值,这个赋值操作会被执行,而之前的声明不会受到影响。然而,尝试读取未声明的变量会导致JavaScript抛出错误。
浅说js变量
标题《浅说js变量》是对JavaScript变量的初步介绍,旨在解释JavaScript中变量的特性、声明方式、作用域、类型以及垃圾收集等方面的基础知识。


