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;

  }

  else{ return DomObjId.innerHTML };

  }

  else{ throw 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;

  }

  else{ return DomObjId.innerText };

  }

  else{ throw 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;

  }

  else{ return DomObjId.value };

  }

  else{ throw 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();