CCPry JS类库 代码


Posted in Javascript onOctober 30, 2009
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();
Javascript 相关文章推荐
[JS源码]超长文章自动分页(客户端版)
Jan 09 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
Mar 03 Javascript
Angular.js中$apply()和$digest()的深入理解
Oct 13 Javascript
JS验证码实现代码
Sep 14 Javascript
微信小程序数据存储与取值详解
Jan 30 Javascript
vue 的keep-alive缓存功能的实现
Mar 22 Javascript
vue组件之间数据传递的方法实例分析
Feb 12 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
layui 弹出删除确认界面的实例
Sep 06 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 Javascript
vue实现列表拖拽排序的功能
Nov 02 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
Oct 30 #Javascript
扩展jQuery 键盘事件的几个基本方法
Oct 30 #Javascript
jQuery 扩展对input的一些操作方法
Oct 30 #Javascript
jquery 弹出层实现代码
Oct 30 #Javascript
网页禁用右键实现代码(JavaScript代码)
Oct 29 #Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 #Javascript
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 #Javascript
You might like
PHP页面间传递参数实例代码
2008/06/05 PHP
网友原创的PHP模板类代码
2008/09/07 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
php实现数据库的增删改查
2017/02/26 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
让焦点自动跳转
2006/07/01 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
javascript实现微信分享
2014/12/23 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
vue 实现购物车总价计算
2019/11/06 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
python实现拼图小游戏
2020/02/22 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
专升本学生毕业自我鉴定
2014/10/04 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS