您的位置:首页 > Web前端 > CSS

动态加载、移除、替换js/css文件

2018-01-24 15:15 627 查看
本文简单介绍动态加载、移除、替换js/css文件 。有时候我们在写前端的时候,会有出现需要动态加载一些东如css js 这样能减轻用户加载负担,从而提高响应效率。下面贴出代码。

 <script language="JavaScript">

//动态加载一个js/css文件

function loadjscssfile(filename, filetype){

if (filetype=="js"){

varfileref=document.createElement('script')

fileref.setAttribute("type","text/javascript")

fileref.setAttribute("src",filename)

}

else if (filetype=="css"){

varfileref=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)

}

 

</script>

使用示例:

loadjscssfile("myscript.js","js")

loadjscssfile("javascript.PHP","js")

loadjscssfile("mystyle.css","css")

 

 

 

<scriptlanguage="javascript">

//移动已经加载过的js/css

function removejscssfile(filename,filetype){

vartargetelement=(filetype=="js")? "script" :(filetype=="css")? "link" : "none"

var targetattr=(filetype=="js")?"src" : (filetype=="css")? "href" :"none"

varallsuspects=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"){

varfileref=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"

varallsuspects=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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: