Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从html页面动态删除脚本文件_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从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 = "

我开发了一个网站,在该网站上,我通过调用加载函数来浏览不同于主页的html页面,如下所示:

$("#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运行时环境中。请看以下文章: