返回列表

动态载入JS&CSS

默认分类 2011-04-06 00:03:21

  1. /*********************动态载入JS&CSS Satrt************************/  
  2. function loadJS(url, onload) {  
  3.     var _loadJS = arguments.callee;  
  4.     if ( !! document && document.readyState && document.readyState == "complete") {   
  5.         //write ready function here  
  6.         var domscript = document.createElement('script');  
  7.         domscript.src = url;  
  8.         if ( !! onload) {  
  9.             domscript.afterLoad = onload;  
  10.             domscript.onreadystatechange = function() {  
  11.                 if (domscript.readyState == "loaded" || domscript.readyState == "complete") {  
  12.                     domscript.afterLoad();  
  13.                 }  
  14.             }  
  15.             domscript.onload = function() {  
  16.                 if ( !! domscript.afterLoad) domscript.afterLoad();  
  17.             }  
  18.         }  
  19.         document.getElementsByTagName('head')[0].appendChild(domscript);  
  20.     } else window.setTimeout(function() {_loadJS(url, onload)},1);  
  21. }  
  22. function loadCSS(url, onload) {  
  23.     var _loadCSS = arguments.callee;  
  24.     if ( !! document && document.readyState && document.readyState == "complete") {   
  25.         //write ready function here  
  26.         var html_doc = document.getElementsByTagName('head')[0];  
  27.         var domcss = document.createElement('link');  
  28.         domcss.setAttribute('rel''stylesheet');  
  29.         domcss.setAttribute('type''text/css');  
  30.         domcss.setAttribute('href', url);  
  31.         document.getElementsByTagName('head')[0].appendChild(domcss);  
  32.         domcss.id = 'dynamicCss' + (new Date).getTime();  
  33.         /*Firefox不支持css的onload或onreadystatechange*/  
  34.         if ( !! onload) {  
  35.             domcss.afterLoad = onload;  
  36.             domcss.onreadystatechange = function() {  
  37.                 if (domcss.readyState == "loaded" || domcss.readyState == "complete") {  
  38.                     domcss.afterLoad();  
  39.                 }  
  40.             }  
  41.         }  
  42.         if (!document.all) {  
  43.             domcss.poll = function() {  
  44.                 try {  
  45.                     var sheets = document.styleSheets;  
  46.                     for (var j = 0, k = sheets.length; j < k; j++) {  
  47.                         if (sheets[j].ownerNode.id == domcss.id) {  
  48.                             sheets[j].cssRules;  
  49.                         }  
  50.                     }  
  51.                     if ( !! domcss.afterLoad) domcss.afterLoad();  
  52.                 } catch(e) {  
  53.                     window.setTimeout(domcss.poll, 50);  
  54.                 }  
  55.             }  
  56.             window.setTimeout(domcss.poll, 50);  
  57.         }  
  58.     } else window.setTimeout(function() {_loadCSS(url, onload)},1);  
  59. }  
  60. /*********************动态载入JS&CSS End************************/