本文簡單介紹動態加載、移除、替換js/css文件 。有時候我們在寫前端的時候,會有出現需要動態加載一些東如css js 這樣能減輕用戶加載負擔,從而提高響應效率。下面貼出代碼。
//JS寫法
<script language="JavaScript"> //動態加載一個js/css文件 function loadjscssfile(filename, filetype){ if (filetype=="js"){ var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src",filename) } else if (filetype=="css"){ 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")
loadjscssfile("javascript.PHP","js")
loadjscssfile("mystyle.css","css") </script>
//jquery加載css
$('#btn').click(function()
{
$('head').children(':last').attr({
rel: "stylesheet",
type: 'text/css',
href: './style.css',
});
})
//jquery加載js
$.getScript("index.js");//直接加載 //當加載完成之后需要進行后續操作,可利用callback實現 $.getScript("test.js", function() { console.log('success') }); $.getScript()//也可利用done的方式判斷js文件是否加載成功 $.getScript("test.js").done(function() { console.log('success') });
//動態移除
//移動已經加載過的js/css function removejscssfile(filename,filetype){ var targetelement=(filetype=="js")? "script" :(filetype=="css")? "link" : "none" var targetattr=(filetype=="js")?"src" : (filetype=="css")? "href" :"none" var allsuspects=document.getElementsByTagName(targetelement) for (var i=allsuspects.length; i>=0;i--){ if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1) allsuspects[i].parentNode.removeChild(allsuspects[i]) } } </script> 使用示例: removejscssfile("somescript.js","js") removejscssfile("somestyle.css","css")
替換已經加載的js/css文件,代碼如下: <script language="javascript"> function createjscssfile(filename,filetype){ if (filetype=="js"){ var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src",filename) } else if (filetype=="css"){ var fileref=document.createElement("link") fileref.setAttribute("rel","stylesheet") fileref.setAttribute("type","text/css") fileref.setAttribute("href",filename) } return fileref } function replacejscssfile(oldfilename,newfilename, filetype){ var targetelement=(filetype=="js")?"script" : (filetype=="css")? "link" :"none" var targetattr=(filetype=="js")?"src" : (filetype=="css")? "href" :"none" var allsuspects=document.getElementsByTagName(targetelement) for (var i=allsuspects.length; i>=0;i--){ if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null &&allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){ var newelement=createjscssfile(newfilename, filetype) allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]) } } } </script>
---------------------
作者:CG-Jun
來源:CSDN
原文:https://blog.csdn.net/m0_37950366/article/details/70207389
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!