我开发了一个网站,通过调用如下所示的加载函数,我从主页导航不同的html页面:
$("#content").load('page.html', function (response, status) {});
page.html包含一些也在主页中加载的脚本文件。我正在尝试做的是当我导航不同的页面时动态删除脚本文件 像那样
$("#content").load('another_page.html', function (response, status) {
if (status = "success") {
//Remove script file in page.html
}
});
以下我已申请通过谷歌
找到function removejscssfile(filename, filetype) {
var targetelement = (filetype == "js") ? "script" : (filetype == "css") ? "link" : "none" //determine element type to create nodelist from
var targetattr = (filetype == "js") ? "src" : (filetype == "css") ? "href" : "none" //determine corresponding attribute to test for
var allsuspects = document.getElementsByTagName(targetelement)
for (var i = allsuspects.length; i >= 0; i--) { //search backwards within nodelist for matching elements to remove
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1)
allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
}
}
但脚本文件仍然存在。
答案 0 :(得分:1)
删除脚本标记或删除JS文件标记不会丢弃JS。他还在装。所以你还需要告诉他删除这段代码。
一种可能的方法是将Javascipt文件封装到一个函数中,然后重新定义此函数。例如:
function foo(){
//Your javascript here
}
然后:
foo= function(){};
但是如果你的函数包含事件,你仍然需要手动取消绑定它们。