CCPry JS类库

function CCPry(){
 
//
 // 判断浏览器类型
 //
 this.Browser ={
     
"isMozilla":(typeof document.implementation != 'undefined'&& (typeof document.implementation.createDocument != 'undefined'&& (typeof HTMLDocument!='undefined'),
     
"isIE":window.ActiveXObject ? true : false,
     
"isFirefox":navigator.userAgent.toLowerCase().indexOf("firefox")!=-1,
     
"isOpera":navigator.userAgent.toLowerCase().indexOf("opera")!=-1
 };
 
 
//
 //根据元素ID返回DOM对象
 //
 this.$Id=function(id){
    
return document.getElementById(id);
 };
 
//
 //根据元素ID返回DOM对象
 //
 this.Id=function(id){
       
var DomObjId=this.$Id(id);
       
if(!DomObjId){ throw new Error("No Object!");}
       
//返回或设置对象的innerHTML属性
       this.Html=function(html){
           
if(!this.IsUndefined(DomObjId.innerHTML))
           {
               
if(!this.IsNull(html)){
                  DomObjId.innerHTML
=html;
               }
               
elsereturn DomObjId.innerHTML };
           }
           
elsethrow new Error("Object does not support the property innerHTML!");};
       };
       
//返回或设置对象的innerText属性
       this.Text=function(text){
           
if(!this.IsUndefined(DomObjId.innerText))
           {
               
if(!this.IsNull(text)){
                  DomObjId.innerText
=text;
               }
               
elsereturn DomObjId.innerText };
           }
           
elsethrow new Error("Object does not support the property innerText!");};
       };   
       
//返回或设置对象的value属性
       this.Val=function(val){
           
if(!this.IsUndefined(DomObjId.value))
           {
               
if(!this.IsNull(val)){
                  DomObjId.value
=val;
               }
               
elsereturn DomObjId.value };
           }
           
elsethrow new Error("Object does not support the property value!");};
       }
    
return this;
 };
 
 
//
 //根据元素Name返回DOM对象
 //
 this.$Name=function(name){
  
return document.getElementsByName(name);
 };
 
 
//
 //判断字符串是否为空或者null
 //
 this.IsNullOrEmpty=function( str ) {
  
if(str==null){
     
return true;
  }
  
else{
      
if(str.length<=0){
          
return true;
      }
  }
  
return false;
 };
 
//
 //判断字符串是否为空
 //
 this.IsEmpty=function( str ) {
     
if(str.length<=0){
         
return true;
     }
  
return false;
 };
 
//
 //判断字符串是否null
 //
 this.IsNull=function( str ) {
  
if(str==null){
     
return true;
  }
  
return false;
 };
 
//
 //判断是否是函数
 //
 this.IsFunction=function( fn ) {
  
return typeof(fn)=="function";
 };
 
 
//
 //判断是否是对象
 //
 this.IsObject=function( fn ) {
  
return typeof(fn)=="object";
 };
 
//
 //判断是否是字符串
 //
 this.IsString=function( fn ) {
  
return typeof(fn)=="string";
 };
 
 
//
 //判断是否是数字型
 //
 this.IsNumber=function( fn ) {
  
return typeof(fn)=="number";
 };
 
 
//
 //判断是否是布尔型
 //
 this.IsBoolean=function( fn ) {
  
return typeof(fn)=="boolean";
 };
 
 
//
 //判断是否未定义
 //
 this.IsUndefined=function( fn ) {
  
return typeof(fn)=="undefined";
 };
 
 
//
 //判断是否是日期型
 //
 this.IsDate=function( fn ) {
  
return fn.constructor==Date;
 };
 
 
//
 //返回Ajax对象
 //
 this.Ajax=function(s){
  
    
//构造XMLHttpRequest对象
    GetXmlHttpRequest=function(){
   
var xmlHttpRequest;
   
if(window.XMLHttpRequest) { xmlHttpRequest = new XMLHttpRequest();}
    
else if(window.ActiveXObject) { 
    
try { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } 
    
catch (e){ xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
   }
   
if (!xmlHttpRequest) { 
    alert(
"创建XMLHttpRequest对象失败");
    
return null;
   } 
   
return xmlHttpRequest;
  };
  
  
//默认Ajax配置
  ajaxSettings={
   url: 
"/ajax/ProcessAjax.ashx",
   method: 
"POST",
   timeout: 
0,
   mimeType: 
"application/x-www-form-urlencoded",
   async: 
true,
   data: 
null,
   datatype:
"html",
   charset:
"utf-8",
      accepts: {
       xml: 
"application/xml, text/xml",
       html: 
"text/html",
       script: 
"text/javascript, application/javascript",
       json: 
"application/json, text/javascript",
       text: 
"text/plain",
       _default: 
"*/*"
      },
      
/// <summary>
         /// 请求开始时调用函数
         /// </summary>
   OnStart:function(){
    
//start
   },
      
/// <summary>
         /// 请求成功后回调函数
         /// </summary>
   /// <param name="msg">服务器返回数据</param>
   OnSuccess:function(msg){
    
//success
   },
   
/// <summary>
         /// 操作异常调用函数
         /// </summary>
   /// <param name="msg">异常信息</param>
   OnException:function(msg){
    
//exception
   },
   
/// <summary>
         /// 请求超时后调用函数
         /// </summary>
   OnTimeout:function(){
    
//timeout
   },
   
/// <summary>
         /// 请求完成后调用函数
         /// </summary>
   OnComplate:function(){
    
//complate
   }
  };
  
  
if(this.IsObject(s)){

   
/*检测传入对象*/
   ajaxSettings.url 
= (!this.IsUndefined(s.url) && this.IsString(s.url)) ? s.url : ajaxSettings.url;
   ajaxSettings.method 
=(!this.IsUndefined(s.method) && this.IsString(s.method)) ? s.method : ajaxSettings.method;
   ajaxSettings.timeout 
= (!this.IsUndefined(s.timeout) && this.IsNumber(s.timeout)) ? s.timeout : ajaxSettings.timeout;
   ajaxSettings.mimeType
= (!this.IsUndefined(s.mimeType) && this.IsString(s.mimeType)) ? s.mimeType : ajaxSettings.mimeType;
   ajaxSettings.async 
= (!this.IsUndefined(s.async) && this.IsBoolean(s.async)) ? s.async : ajaxSettings.async;
   ajaxSettings.data 
= (!this.IsUndefined(s.data) && this.IsString(s.data)) ? s.data : ajaxSettings.data;
   ajaxSettings.datatype 
= (!this.IsUndefined(s.datatype) && this.IsString(s.datatype)) ? s.datatype: ajaxSettings.datatype;
   ajaxSettings.charset 
=(!this.IsUndefined(s.charset) && this.IsString(s.charset)) ? s.charset: ajaxSettings.charset;
   ajaxSettings.OnStart 
=(!this.IsUndefined(s.OnStart) && this.IsFunction(s.OnStart)) ? s.OnStart : ajaxSettings.OnStart;
   ajaxSettings.OnSuccess 
=(!this.IsUndefined(s.OnSuccess) && this.IsFunction(s.OnSuccess)) ? s.OnSuccess : ajaxSettings.OnSuccess;
   ajaxSettings.OnException
=(!this.IsUndefined(s.OnException)&&this.IsFunction(s.OnException))?s.OnException:ajaxSettings.OnException;
   ajaxSettings.OnTimeout 
= (!this.IsUndefined(s.OnTimeout) && this.IsFunction(s.OnTimeout)) ? s.OnTimeout : ajaxSettings.OnTimeout;
   ajaxSettings.OnComplate
=(!this.IsUndefined(s.OnComplate) && this.IsFunction(s.OnComplate)) ? s.OnComplate : ajaxSettings.OnComplate;

   
//赋值xmlhttp,传入XMLHttpRequest对象
   var xmlhttp=GetXmlHttpRequest();
   
var requestDone=false;
   
try
   {
           
//根据POST或GET方法判断xmlhttp.send()需要传入什么参数
           if (ajaxSettings.data && ajaxSettings.method.toUpperCase() == "GET" ) {
      ajaxSettings.url 
+= (ajaxSettings.url.match(/\?/? "&" : "?"+ ajaxSettings.data;
      ajaxSettings.data 
= null;
     }
     xmlhttp.open(ajaxSettings.method,ajaxSettings.url,ajaxSettings.async);
     xmlhttp.setRequestHeader(
"Content-Type", ajaxSettings.mimeType);
     xmlhttp.setRequestHeader(
"X-Requested-With""XMLHttpRequest");     // 设置标题表明一个XMLHttpRequest的请求
     xmlhttp.setRequestHeader("Accept",ajaxSettings.datatype && ajaxSettings.accepts[ ajaxSettings.datatype ] ?ajaxSettings.accepts[ ajaxSettings.datatype ] + ", */*" :ajaxSettings.accepts._default);
     
if(ajaxSettings.timeout>0){
      
var timer=setTimeout(function(){requestDone=true;xmlhttp.abort();},ajaxSettings.timeout);
     }
     
var xmlreadystatechange=function ()
     {
      
if(requestDone){ ajaxSettings.OnTimeout(); } //timeout
      else if(xmlhttp.readyState==4//success
      {
       
if (timer) { clearTimeout(timer); timer = null;} 
       
if (xmlhttp.status==200 || xmlhttp.status=="success")
       {  
        
switch(ajaxSettings.datatype.toLowerCase()) 
        {
         
case "html":
          ajaxSettings.OnSuccess(xmlhttp.responseText);
          
break;
         
case "xml"
          ajaxSettings.OnSuccess(xmlhttp.responseXML); 
          
break;
        }
       }
       ajaxSettings.OnComplate(); 
//complate
       if (ajaxSettings.async&&xmlhttp){ xmlhttp=null; }
      }
      
else{ajaxSettings.OnStart();} //start
     } 
     xmlhttp.onreadystatechange
=xmlreadystatechange;
     xmlhttp.send(ajaxSettings.data);
     
if (!ajaxSettings.async){ xmlreadystatechange();xmlhttp=null; }
   }
   
catch(e){
    ajaxSettings.OnException(e.message); 
//exception
   }
  }
  
return this;
 }
 
//
 // 拆分JSON对象并以特定符号连接组成字符串
 //
 this.SplitJson=function(jsonObj,splitSign){
 
     
var jsonStr='',signLastIndex;
     
for (jo in jsonObj) 
     {
   jsonStr 
+= (jo + "=" + jsonObj[jo] + splitSign) ;
     }
  signLastIndex
=jsonStr.lastIndexOf(splitSign);
  
if(signLastIndex!=-1){
   jsonStr
=jsonStr.substring(0,signLastIndex);
  }
  
return jsonStr;
 }
 
//
 // JS图片缩略
 //
    this.DrawImage=function(ImgD,iwidth,iheight){
        
var flag=false;
        
var image=new Image();
        image.src
=ImgD.src;
        
if(image.width>0 && image.height>0)
        {
            flag
=true;
            
if(image.width/image.height>= iwidth/iheight)
            {
                
if(image.width>iwidth)
                { 
                    ImgD.width
=iwidth;
                    ImgD.height
=(image.height*iwidth)/image.width;
                }
                
else
                {
                    ImgD.width
=image.width; 
                    ImgD.height
=image.height;
                }
            }
            
else
            {
                
if(image.height>iheight)
                { 
                    ImgD.height
=iheight;
                    ImgD.width
=(image.width*iheight)/image.height; 
                }
                
else
                {
                    ImgD.width
=image.width; 
                    ImgD.height
=image.height;
                }
            }
         }
    }
    
//
 // 截取字符串 包含中文处理  
 //
    this.SubString=function(str, len, hasDot){  
        
var newLength = 0;  
        
var newStr = "";  
        
var chineseRegex = /[^\x00-\xff]/g;  
        
var singleChar = "";  
        
var strLength = str.replace(chineseRegex,"**").length;  
        
for(var i = 0;i < strLength;i++)  
        {  
            singleChar 
= str.charAt(i).toString();  
            
if(singleChar.match(chineseRegex) != null)  
            {  
                newLength 
+= 2;  
            }      
            
else  
            {  
                newLength
++;  
            }  
            
if(newLength > len)  
            {  
                
break;  
            }  
            newStr 
+= singleChar;  
        }  
        
if(hasDot && strLength > len)  
        {  
            newStr 
+= "";  
        }  
        
return newStr;  
    }
    
//
 // 替换所有
 //
    this.ReplaceAll=function(Str,oldString,newString){
        
return Str.replace(new RegExp(oldString,"gm"),newString); 
    },
    
//
 // 获得URL参数,无效返回undfined
 //
    this.RequestQueryString=function(url){
   
var qIndex=url.indexOf('?');
   
var queryObj={};
   
if(qIndex!=-1){
      
var queryStr=url.substring(qIndex+1,url.length);
      
if(queryStr.indexOf('&')!=-1){
         
var arrQuery = new Array();
         arrQuery
=queryStr.split('&');
         
for(arrStr in arrQuery){
             paramKey
=arrQuery[arrStr].substring(0,arrQuery[arrStr].indexOf("=")).toLowerCase();
             paramValue
=arrQuery[arrStr].substring(arrQuery[arrStr].indexOf("=")+1,arrQuery[arrStr].length); 
             queryObj[paramKey]
=paramValue
         }
      }
      
else{
         paramKey
=queryStr.substring(0,queryStr.indexOf("=")).toLowerCase();
         paramValue
=queryStr.substring(queryStr.indexOf("=")+1,queryStr.length); 
         queryObj[paramKey]
=paramValue;
      }
   }
   
return queryObj;
    }
}
window.$CC
=new CCPry();
posted @ 2009-10-29 23:23  与时俱进  阅读(387)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈