是否可以在运行时通过JavaScript添加或删除JavaScript文件和CSS文件?如果JavaScript不可能,那么我们可以通过PHP或任何其他服务器站点语言来实现吗?
Is it possible to add or remove JavaScript files and CSS files by JavaScript at run time? If it's not possible by JavaScript then, Can we do it by PHP or any other server site language?
实际上我试过yep-nope js但是我无法通过它卸载任何javascript。
Actually i tried by yep-nope js but i am not able to unload any javascript by it.
推荐答案检查这个,这个和这个
从顶部链接,动态添加js或css:
From the top link, to dynamically add js or css:
function loadjscssfile(filename, filetype){ if (filetype=="js"){ //if filename is a external JavaScript file var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src", filename) } else if (filetype=="css"){ //if filename is an external CSS file var fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) } if (typeof fileref!="undefined") document.getElementsByTagName("head")[0].appendChild(fileref) } loadjscssfile("myscript.js", "js") //dynamically load and add this .js file loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file此外,要动态删除js或css:
Also, to dynamically remove js or css:
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() } } removejscssfile("somescript.js", "js") //remove all occurences of "somescript.js" on page removejscssfile("somestyle.css", "css") //remove all occurences "somestyle.css" on page但请注意删除:
那么删除外部JavaScript或CSS文件时会发生什么?也许并不完全是你所期望的。在的JavaScript案例中,当元素从文档树中删除时,作为外部JavaScript文件的一部分加载的任何代码在浏览器的内存中仍然是。也就是说,您仍然可以访问外部文件首次加载时添加的变量,函数等
更多推荐
在运行时加载和卸载javascript
发布评论