1. 程式人生 > >JS動態引入js、CSS動態建立script/link/style標籤 JS動態引入js、CSS動態建立script/link/style標籤

JS動態引入js、CSS動態建立script/link/style標籤 JS動態引入js、CSS動態建立script/link/style標籤

JS動態引入js、CSS動態建立script/link/style標籤

轉:https://www.cnblogs.com/henuyuxiang/p/6215706.html

一.動態建立link方式

我們可以使用link的方式.如下程式碼所示.

1 2 3 4 5 6 7 8 9 10 11 12 13 function addCssByLink(url){       var doc=document;       var link=doc.createElement("link");      
link.setAttribute("rel", "stylesheet");       link.setAttribute("type", "text/css");       link.setAttribute("href", url);    
       var heads = doc.getElementsByTagName("head");       if(heads.length)           heads[0].appendChild(link);       else           doc.documentElement.appendChild(link); 

二.動態建立style方式

但是,這樣的話,需要載入整個css檔案,但是那樣有可能浪費一個http請求並佔用一個伺服器請求數,並等待上一段下載時間,所以,Firebug Lite採取的是將css程式碼寫在js中,然後動態建立style標籤的方法,正如下面所示

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 function addCssByStyle(cssString){       var doc=document;       var style=doc.createElement("style");       style.setAttribute("type", "text/css");           if(style.styleSheet){// IE           style.styleSheet.cssText = cssString;       } else {// w3c           var cssText = doc.createTextNode(cssString);           style.appendChild(cssText);                var heads = doc.getElementsByTagName("head");       if(heads.length)           heads[0].appendChild(style);       else           doc.documentElement.appendChild(style); 

這樣的話,如果是較少的程式碼,可以比較方便的實現到動態載入css的效果,但是如果為了方便維護和管理,並沒有等待時間限制,使用link方式更加合適

三.動態建立script方式

1 2 3 4 5 6 7 8 var script=document.createElement("script");  script.setAttribute("type", "text/javascript");  script.setAttribute("src", "JustWalking.js");  var heads = document.getElementsByTagName("head");  if(heads.length)       heads[0].appendChild(script);  else       document.documentElement.appendChild(script); 

但是這種方式在IE核心的瀏覽器中支援,在google、360極速、firefox下卻不行

四.列印引入style方式

1 document.write("< link  rel=\"stylesheet\" href=\"uild/style.css\" type=\"text/css\" media=\"screen\"/>"); 

五.列印引入js方式

1 document.write("< script  type=\"text/javascript\" src=\"JustWalking.js\"></ script >");

一.動態建立link方式

我們可以使用link的方式.如下程式碼所示.

1 2 3 4 5 6 7 8 9 10 11 12 13 function addCssByLink(url){       var doc=document;       var link=doc.createElement("link");       link.setAttribute("rel", "stylesheet");       link.setAttribute("type", "text/css");       link.setAttribute("href", url);           var heads = doc.getElementsByTagName("head");       if(heads.length)           heads[0].appendChild(link);       else           doc.documentElement.appendChild(link); 

二.動態建立style方式

但是,這樣的話,需要載入整個css檔案,但是那樣有可能浪費一個http請求並佔用一個伺服器請求數,並等待上一段下載時間,所以,Firebug Lite採取的是將css程式碼寫在js中,然後動態建立style標籤的方法,正如下面所示

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 function addCssByStyle(cssString){       var doc=document;       var style=doc.createElement("style");       style.setAttribute("type", "text/css");           if(style.styleSheet){// IE           style.styleSheet.cssText = cssString;       } else {// w3c           var cssText = doc.createTextNode(cssString);           style.appendChild(cssText);                var heads = doc.getElementsByTagName("head");       if(heads.length)           heads[0].appendChild(style);       else           doc.documentElement.appendChild(style); 

這樣的話,如果是較少的程式碼,可以比較方便的實現到動態載入css的效果,但是如果為了方便維護和管理,並沒有等待時間限制,使用link方式更加合適

三.動態建立script方式

1 2 3 4 5 6 7 8 var script=document.createElement("script");  script.setAttribute("type", "text/javascript");  script.setAttribute("src", "JustWalking.js");  var heads = document.getElementsByTagName("head");  if(heads.length)       heads[0].appendChild(script);  else       document.documentElement.appendChild(script); 

但是這種方式在IE核心的瀏覽器中支援,在google、360極速、firefox下卻不行

四.列印引入style方式

1 document.write("< link  rel=\"stylesheet\" href=\"uild/style.css\" type=\"text/css\" media=\"screen\"/>"); 

五.列印引入js方式

1 document.write("< script  type=\"text/javascript\" src=\"JustWalking.js\"></ script >");