博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

js、css的动态加载

Posted on 2009-02-25 20:44  ╁蓝驿┲→  阅读(366)  评论(0编辑  收藏  举报

var $_JS_LOADED = [];   //已载入的文件
//动态加载js、css文件
function $import(type,src){
    if(!$_JS_LOADED[src]){
    if(type=="js"){
         try{
             var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
             xhr.open("GET", src, false);
             xhr.send(null);
             if(200 == xhr.status || 0 == xhr.status){
      if (window.execScript)
         window.execScript(xhr.responseText);
      else window.eval.call(window, xhr.responseText);
             }
             $_JS_LOADED[src] = true;
         }catch(e){
             alert('系统错误: 加载文件"' + src + '"出错! \r\n[在第 ' + e.lineNumber + ' 行出现 ' + e.message + ' 错误]');
         }
        }else if(type=="css"){
    var css = document.createElement("link");
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("href", src);
    if (typeof css!="undefined"){
     document.getElementsByTagName("head")[0].appendChild(css);
     $_JS_LOADED[src] = true;
    }else{
     alert('系统错误: 加载文件"' + src + '"出错!');
    }
   }
    }
}

------------------调用方法------------------------------

<script language="javascript">
$import("css","jpage/theme/default/css/jpage.css");

$import("js","jquery.js");
$import("js","cookie/jquery.cookie.js");//不用cookie,可以不加载,但需要将openCookies置为false
$import("js","jpage/jquery.jpage.js");
</script>