多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > web前端 > htmlcss > 如何動(dòng)態(tài)加載外部CSS與JS文件

如何動(dòng)態(tài)加載外部CSS與JS文件

來(lái)源:程序員人生   發(fā)布時(shí)間:2013-11-13 07:00:09 閱讀次數(shù):2708次

動(dòng)態(tài)加載外部CSS與JS文件使用dom創(chuàng)建<script>或者<link>標(biāo)簽,并給他們附加屬性,如type等。然后使用appendChild方法把標(biāo)簽綁定到另一個(gè)標(biāo)簽,一般是綁到<head>。

應(yīng)用:
1、提高代碼的復(fù)用,減少代碼量;
2、添加一個(gè)javascript控制器和 session可以實(shí)現(xiàn)動(dòng)態(tài)改變頁(yè)面樣式;
3、由于是頁(yè)面是從上到下依次加載文件的,并且邊加載邊解釋?zhuān)钥梢蕴砑觠avascript控制器控制頁(yè)面文件的加載順序,如先加載css布局文件,再顯示有圖片的css美化文件,之后再加載大的falsh文件,或者安內(nèi)容的重要性來(lái)加載。

  To load a .js or .css file dynamically, in a nutshell, it means using DOM methods to first create a swanky new "script" or "LINK" element, assign it the appropriate attributes, and finally, use element.appendChild() to add the element to the desired location within the document tree. It sounds a lot more fancy than it really is. Lets see how it all comes together: 
 
接下來(lái)的工作是綁定到<head>標(biāo)簽。綁定的時(shí)候有一個(gè)問(wèn)題就是同一個(gè)文件有可能被我們綁定兩次,綁定兩次瀏覽器也不會(huì)出現(xiàn)異常,但是效率就低了。為了避免這種情況我們可以新增一個(gè)全局?jǐn)?shù)組變量,把綁定的文件名字保存在里面,每次綁定前先檢查一下是否已經(jīng)存在,如果存在就提示已經(jīng)存在,如果不存在就綁定。

document.getElementsByTagName("head")[0].appendChild(fileref) 


By referencing the HEAD element of the page first and then calling appendChild(), this means the newly created element is added to the very end of the HEAD tag. Furthermore, you should be aware that no existing element is harmed in the adding of the new element- that is to say, if you call loadjscssfile("myscript.js", "js") twice, you now end up with two new "script" elements both pointing to the same Javascript file. This is problematic only from an efficiency standpoint, as you'll be adding redundant elements to the page and using unnecessary browser memory in the process. A simple way to prevent the same file from being added more than once is to keep track of the files added by loadjscssfile(), and only load a file if it's new:

var filesadded="" //保存已經(jīng)綁定文件名字的數(shù)組變量 
function checkloadjscssfile(filename, filetype){ 
if (filesadded.indexOf("["+filename+"]")==-1){// indexOf判斷數(shù)組里是否有某一項(xiàng) 
  loadjscssfile(filename, filetype) 
  filesadded+="["+filename+"]" //把文件名字添加到filesadded 

else 
  alert("file already added!")//如果已經(jīng)存在就提示 

checkloadjscssfile("myscript.js", "js") //success 
checkloadjscssfile("myscript.js", "js") //redundant file, so file not added 

  Here I'm just crudely detecting to see if a file that's set to be added already exists within a list of added files' names stored in variable filesadded before deciding whether to proceed or not. 
Ok, moving on, sometimes the situation may require that you actually remove or replace an added .js or .css file. Lets see how that's done next. 

function loadjscssfile(filename, filetype){ 
if (filetype=="js"){ //判斷文件類(lèi)型 
  var fileref=document.createElement('script')//創(chuàng)建標(biāo)簽 
  fileref.setAttribute("type","text/javascript")//定義屬性type的值為text/javascript 
  fileref.setAttribute("src", filename)//文件的地址 

else if (filetype=="css"){ //判斷文件類(lèi)型 
  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") //打開(kāi)頁(yè)面時(shí)瀏覽器動(dòng)態(tài)的加載文件 
loadjscssfile("javascript.php", "js") // 打開(kāi)頁(yè)面時(shí)瀏覽器動(dòng)態(tài)的加載"javascript.php" , 
loadjscssfile("mystyle.css", "css") //打開(kāi)頁(yè)面時(shí)瀏覽器動(dòng)態(tài)的加載.css 文件 
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久亚洲日本不卡一区二区 | tube欧美69xxxx | 美女免费观看一区二区三区 | 免费看成人国产一区二区三区 | 久久国产精品视频一区 | 久久国产精品久久久久久久久久 | 亚洲欧洲天堂 | 五月天伊人 | 2020欧美极品hd18 | 另类亚洲视频 | 无国产精品白浆免费视 | 色综合久久中文 | 日本欧美一区二区三区高清 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看尤物 | 国产精品欧美日韩 | 国产女乱淫真高清免费视频 | xyx性爽欧美视频 | 久久99爱爱| 噜噜噜网站 | 国产成人精品日本亚洲18图 | 久操美女 | 亚洲第一色站 | 日韩精品亚洲人成在线观看 | 亚洲成人一区 | 嫩草亚洲国产精品 | 国产三级在线观看播放 | 欧美一级日本一级韩国一级 | 母狗求操 | 国产xxxxx在线观看 | 亚欧美色| 日韩成人国产精品视频 | 日韩 欧美 亚洲国产 | 特级黄aaaaaaaaa毛片 | 成人免费视频在线播放 | 中文字幕一区二区三区有限公司 | ck7788免费视频 | 欧美国产三级 | 国产精品免费视频一区 | 校园春色欧美色图 | jizzjizzjizz亚洲 | 青青青青爽极品在线视频 |