Javascript 从html页面动态删除脚本文件
我开发了一个网站,在该网站上,我通过调用加载函数来浏览不同于主页的html页面,如下所示:Javascript 从html页面动态删除脚本文件,javascript,jquery,html,Javascript,Jquery,Html,我开发了一个网站,在该网站上,我通过调用加载函数来浏览不同于主页的html页面,如下所示: $("#content").load('page.html', function (response, status) {}); html包含一些脚本文件,这些文件也加载到主页中。我尝试做的是在浏览不同页面时动态删除脚本文件 那样 $("#content").load('another_page.html', function (response, status) { if (status = "
$("#content").load('page.html', function (response, status) {});
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()
}
}
但是脚本文件仍然存在。删除脚本标记或删除JS文件标记不会丢弃JS。他仍然很有钱。所以你还需要告诉他删除这个密码 一种可能的方法是将Javascipt文件封装到一个函数中,然后重新定义该函数。例如:
function foo(){
//Your javascript here
}
然后:
foo= function(){};
但是,如果函数包含事件,您仍然需要手动解除绑定。一旦加载并运行js文件,我认为这并不像删除脚本标记那么简单。您必须确保它创建的所有函数和变量都是未定义的。是的,即使您从DOM中删除脚本节点,脚本仍将存在于JS运行时环境中。请看以下文章: