当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript 应用类库代码

Javascript
jQuery代码:jQuery控制表单里的回车键
用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome
jQuery Flash/MP3/Video多媒体插件
9个JavaScript评级/投票插件
JS实现的radio图片选择按钮效果
IE中checkbox在刷新后初始化的问题
JavaScript 学习笔记(十一)
JS 对象介绍
javascript 哈希表(hashtable)的简单实现
jquery 防止表单重复提交代码
js parsefloat parseint 转换函数
javascript parseInt与Number函数的区别
JavaScript 学习笔记(十二) dom
JavaScript 学习笔记(十三)Dom创建表格
javascript 实现自由落体的方块效果
javascript 获取url参数和script标签中获取url参数函数代码
JAVASCRIPT style 中visibility和display之间的区别
javascript 拖放效果实现代码
jquery last-child 列表最后一项的样式
Jquery实战_读书笔记1—选择jQuery

Javascript 中的 JavaScript 应用类库代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 174 ::
收藏到网摘: n/a

S.Sams Lifexperience CopyRight (C) 2003-2007 S.Sams Lifexperience ScriptClassLib MSNLive: S.Sams#msn.com Update by : 2007-01-19 转载传播请保留版权

/* $ 获取指定对象
@element 对象名
可以使用对象名集合,返回值为对象的集合
如果您使用了 Prototype 类库, 请把该函数注释掉
Sams_object.Get() 中同样实现该函数的所有功能
*/
function $(element) {
if (arguments.length > 1) {
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
elements.push($(arguments[i]));
return elements;
}
if (typeof element == 'string')
element = document.getElementById(element);
return element;
}
/// 浏览器相关操作
var Sams_browse = {
/* 检测浏览信息 */
checkBrowser : function ()
{
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.mac=(this.ver.indexOf('Mac') > -1) ?1:0;
this.ope=(navigator.userAgent.indexOf('Opera')>-1);
this.ie=(this.ie6 || this.ie5 || this.ie4)
this.ns=(this.ns4 || this.ns5)
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)
this.nbw=(!this.bw)
return this;
},
/* 设为首页
@url 要设为首页的地址
*/
SetDefault : function ()
{
this.style.behavior='url(#default#homepage)';
this.setHomePage(this.GetUrl());
return false;
},
/* 复制指定URL地址
@Msg 要写入剪贴板的字符集
*/
SetCopy : function (Msg){
if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {
clipboardData.setData('Text',Msg);
alert ("网址“"+Msg+"”\n已经复制到您的剪贴板中\n您可以使用Ctrl+V快捷键粘贴到需要的地方");
}
else
{
prompt("请复制网站地址:",Msg);
}
},
/* 加入收藏
@site 站点名称
@url 地址
*/
AddBookmark : function (site, url){
if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {
window.external.addFavorite(url,site)
} else if (navigator.userAgent.toLowerCase().indexOf('opera') > -1) {
alert ("请使用Ctrl+T将本页加入收藏夹");
} else {
alert ("请使用Ctrl+D将本页加入收藏夹");
}
},
/* 打开Url指定宽度和高度的窗口 */
OpenWindows : function (url,width,height)
{
window.open(url,'newwin','width='+width+',height='+height);
return false;
},
/* 禁止浏览器的Javascript错误提示 */
CloseError : function(){
window.onerror = function(){return true;};
},
/* 获取浏览器URL */
GetUrl : function(){
return location.href;
},
/* 获取URL参数 */
GetUrlParam : function(){
return location.search;
},
/* 获取页面来源 */
GetFrom : function(){
return document.referrer;
},
/* 获取指定的URL参数值
@name 参数名
*/
Request : function(name){
var GetUrl = this.GetUrl();
var Plist = new Array();
if(GetUrl.indexOf('?') > 0)
{
Plist = GetUrl.split('?')[1].split('&');
}
else if(GetUrl.indexOf('#') > 0)
{
Plist = GetUrl.split('#')[1].split('&');
}
if (GetUrl.length > 0)
{
for(var i=0; i<Plist.length; i++)
{
var GetValue = Plist[i].split('=');
if (GetValue[0].toUpperCase() == name.toUpperCase())
{
return GetValue[1];
break;
}
}
return;
}
},
/* 直接将HTML写到新窗口
@title 标题
@msg 内容
*/
Popmsg : function PopIt(title,msg)
{
var popup = window.open('','popDialog','height=500,width=400,scrollbars=yes');
popup.document.write('<html><title>'+title+'</title><style>body{margin:10px;font:13px Arial;}span{text-line:20px;}</style><body><span style=\'font:14px arial;\'>'+msg + '</span></body></html>');
popup.document.close();
}
};

/// 对象操作
var Sams_object = {
/* 创建一个DIV对象
@ID 要创建的对象ID
@ClassName 创建对象的Class
@SetValue 设置该对象值
@ToDiv 将对象追加到指定的对象,如指定的对象不存在,则追加在Body的后面
返回 创建后的对象
*/
CreateDiv : function (ID,ClassName,SetValue,ToDiv){
var creatediv = document.createElement('div');
if(ID != null) creatediv.id = ID;
creatediv.style.position = 'absolute';
if(ClassName != null) creatediv.className = ClassName;
if(this.Get(ToDiv))
{
this.Get(ToDiv).appendChild(creatediv);
}
else
{
document.getElementsByTagName('body')[0].appendChild(creatediv);
}
this.SetValue(ID,SetValue);
return this.Get(ID);
},
/* 删除指定DIV对象
@objid 要删除的对象ID
返回 Bool 操作结果
*/
DeleteDiv : function (objid)
{
try
{
if(this.Get(objid))
{
var GetParent = this.Get(objid).parentNode;
GetParent.removeChild(this.Get(objid));
return true;
}
else
{
return false;
}
}
catch(e)
{
return false;
}
},
/* 获取浏览器对象
@id 要获取的对象ID
可以使用对象名集合,返回值为对象的集合
*/
Get : function (objid) {
if (arguments.length > 1) {
for (var i = 0, objids = [], length = arguments.length; i < length; i++)
objids.push(this.Get(arguments[i]));
return objids;
}
if (typeof objid == 'string')
{
if (document.getElementById) {
objid = document.getElementById(objid);
} else if (document.all) {
objid = document.all[objid];
} else if (document.layers) {
objid = document.layers[objid];
}
}
return objid;
},
/* 获取对象的值
@objid 对象ID
*/
GetValue : function (objid) {
if (typeof objid == 'string')
{
var getTagName = this.Get(objid).tagName.toLowerCase();
if (getTagName == 'input' || getTagName == 'textarea' || getTagName == 'select')
{
return this.Get(objid).value;
}
else if (getTagName == 'div' || getTagName == 'span')
{
return this.Get(objid).innerText;
}
}
else if (typeof objid == 'object')
{
return objid.value;
}
},
/* 设置指定对象的值,实现可以直接赋值或清除操作
@objid 对象ID
@inserValue 传入值(可选项 Null:清除该ID的值, 则直接赋值)
*/
SetValue: function(objid,inserValue) {
var getTagName = this.Get(objid).tagName.toLowerCase();
if (inserValue == null) inserValue = '';
if (getTagName == 'input' || getTagName == 'textarea')
{
this.Get(objid).value = inserValue;
}
else if (getTagName == 'div' || getTagName == 'sapn')
{
this.Get(objid).innerText = inserValue;
}
},
/* 拷贝对象值到剪贴板
@str 对象值
*/
CopyCode : function (str) {
var rng = document.body.createTextRange();
rng.moveToElementText(str);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
},
/* 显示隐藏一个对象
@Objid 对象ID
@isshow 具体操作,指定Obj为False : none或者True : block (可选)
*/
ShowHidd : function(objid,isshow){
if (isshow != null)
{
if(isshow)
{
this.Get(objid).style.display = 'block';
}
else
{
this.Get(objid).style.display = 'none';
}
}
else
{
if(this.Get(objid).style.display == 'none')
{
this.Get(objid).style.display = 'block';
}
else
{
this.Get(objid).style.display = 'none';
}
}
},
/* 当前对象是否可见
@objid 对象ID
*/
IsVisible : function(objid){
if(this.Get(objid))
{
try
{
if (this.Get(objid).style.display == 'none')
{
return false
}
if(this.Get(objid).style.visibility == 'hidden')
{
return false;
}
return true;
}
catch(e)
{
return false;
}
}
else
{
return false;
}
}
};
/// 字符处理
var Sams_string = {
/* 取左边的指定长度的值
@str 要处理的字符集
@n 长度
*/
Left : function (str,n)
{
if(str.length > 0)
{
if(n>str.length) n = str.length;
return str.substr(0,n)
}
else
{
return;
}
},
/* 取右边的指定长度的值
@str 要处理的字符集
@n 长度
*/
Right : function (str,n)
{
if(str.length > 0)
{
if(n>=str.length) return str;
return str.substr(str.length-n,n);
}
else
{
return;
}
},
/* Trim:清除两边空格
@str 要处理的字符集
*/
Trim : function (str)
{
if (typeof str == 'string') return str.replace(/(^\s*)|(\s*$)/g, '');
},
/* LTrim:清除左边的空格
@str 要处理的字符集
*/
Ltrim : function (str)
{
if (typeof str == 'string') return str.replace(/(^\s*)/g, '');
},
/* RTrim: 清除右边的空格
@str 要处理的字符集
*/
Rtrim : function (str)
{
if (typeof str == 'string') return str.replace(/(\s*$)/g, '');
},
/* 清除前后的非字符
@str 要处理的字符集
*/
strip : function(str) {
if (typeof str == 'string') return str.replace(/^\s+/, '').replace(/(^\s*)|(\s*$)/g, '');
},
/* 过滤字符里面的HTML标签
@str 要处理的字符集
*/
stripTags : function(str) {
if (typeof str == 'string')return str.replace(/<\/?[^>]+>/gi, '').replace(/(^\s*)|(\s*$)/g, '');
}
};
/// 时间相关操作
var Sams_time = {
/* 获取当天日期 yyyy-MM-dd */
GetDateNow : function (){
var d,y,m,dd;
d = new Date();
y = d.getYear();
m = d.getMonth() + 1;
dd = d.getDate();
return y+"-"+m+"-"+dd;
},
/* 获取指定日期后的特定天数的日期值
@toDate 当前指定的日期
@N 要添加的日期数
*/
AddDays : function(toDate,N){
var aDate=this._cvtISOToDate(toDate);
if (!aDate) return "";
var millis=86400000 * N;
aDate=new Date(aDate.getTime()+millis);
return this._fmtDateISO(aDate);
},
_fmtDateISO : function (aDate) {
with (aDate) {
var mm=getMonth()+1;
if (mm<10) {mm='0'+mm;}
var dd=getDate();
if (dd<10) {dd='0'+dd;}
return (getFullYear() + '-' + mm + '-' + dd);
}
},
_cvtISOToDate : function (isoDate) {
var atomDate= isoDate.split('-');
var aDate=new Date(parseInt(atomDate[0],10),parseInt(atomDate[1],10)-1,parseInt(atomDate[2],10),6,0,0);
return aDate;
}
};
/// 图像相关操作
var Sams_media = {
/* 为单一图像添加鼠标中键放大缩小功能, 批量可以直接用 ResizeImage(指定添加该功能的图片大小:Int) 即可 (该功能只适用于IE)
objid 对象ID
*/
ZoomFun : function(objid){
Sams_object.Get(objid).onmousewheel = function(){return Sams_media.imagecontrol(this);}
},
/* 重置图片尺寸同时添加放大功能 (该功能只适用于IE)
@IntSize 指定图像的大小
如果适合图像大小就添加放大缩小功能
*/
ResizeImage: function (IntSize) {
var imgsinlog=document.getElementsByTagName('img');
for(j=0; j<imgsinlog.length; j++) {
if (imgsinlog[j].width >= IntSize) {
imgsinlog[j].width = IntSize;
imgsinlog[j].style.cursor= 'pointer';
imgsinlog[j].onclick = function() {window.open(this.src);}
if (navigator.userAgent.toLowerCase().indexOf('ie') > -1) {
imgsinlog[j].title = '您可以用鼠标中键或者使用Ctrl+鼠标滚轮缩放图片,点击图片可在新窗口打开';
imgsinlog[j].onmousewheel = function(){return Sams_media.imagecontrol(this);};
}
else
{
imgsinlog[j].title = '点击图片可在新窗口打开';
}
}
}
},
imagecontrol : function(obj){
var zoom=parseInt(obj.style.zoom, 10)||100;zoom+=event.wheelDelta/12;
if (zoom>0) obj.style.zoom=zoom+'%';
return false;
},
/* 如果图像出现下载不了等异常,显示的错误提示图片
@errimgpath 显示错误提示的图像路径
*/
ImagesError : function(errimgpath){
var imglist = document.getElementsByTagName('img');
for(j=0; j<imglist.length; j++) {
imglist[j].onerror = function(){
this.src = errimgpath;
}
}
},
/* 显示媒体
@mFile 文件路径
@mFileType 文件类型(可为空,如为Flash,要指定为swf类型)
@ObjID 对象ID
@mWidth 显示的对象宽度
@mHeight 显示对象的高度
注: 可以指定对象的ID, 如果ID不存在,会自动创建,追加在Body后面
*/
ShowMedia : function (mFile, mFileType, ObjID, mWidth, mHeight) {
var mediaStr;
switch(mFileType){
case "swf":
mediaStr="<object codeBase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='"+mWidth+"' height='"+mHeight+"'><param name='movie' value='"+mFile+"'><param name='quality' value='high'><param name='AllowScriptAccess' value='never'><embed src='"+mFile+"' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='"+mWidth+"' height='"+mHeight+"'></embed></OBJECT>";
break;
default :
mediaStr="<object width='"+mWidth+"' height='"+mHeight+"' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'><param name='url' value='"+mFile+"' /><embed width='"+mWidth+"' height='"+mHeight+"' type='application/x-mplayer2' src='"+mFile+"'></embed></object>";
}
var mediaDiv = Sams_object.Get(ObjID);
if (mediaDiv) {
mediaDiv.innerHTML = mediaStr;
}
else
{
mediaDiv = document.createElement("div");
mediaDiv.id = ObjID;
mediaDiv.innerHTML = mediaStr;
document.getElementsByTagName('body')[0].appendChild(mediaDiv);
}
return false;
}
};
/// 样式相关操作
var Sams_style = {
/* 改变字体大小
@objid 对象ID
@size 字号
*/
doZoom : function (objid,size){
Sams_object.Get(objid).style.fontSize=size+'px';
},
/* 改变指定对象样式
@objid 对象ID
@className 要更改的ClassName
*/
ClassName: function(objid, className) {
Sams_object.Get(objid).className = className;
},
/* 对象定位
@obj 要定位的对象
返回 X.Y 结果的数组对象
*/
GotoXY : function (obj) {
var t=obj.offsetTop;
var l=obj.offsetLeft;
while(obj=obj.offsetParent){
t+=obj.offsetTop;
l+=obj.offsetLeft;
}
return Array(t,l);
}
};
/// 科学计算
var Sams_account = {
/* 逢1进10计算
@ 数值
*/
GetTen: function (i)
{
var items_One,Get_One;
if (i.length > 1&& (/^\d+$/.test(i)))
{
items_One = i.substr(0,i.length-1);
Get_One = i.substr(i.length-1,1);
if (parseInt(Get_One)>0)
{
items_One = parseInt(items_One)+1;
items_One = items_One + '0';
}
else
{
items_One = items_One + '0';
}
}
else
{
items_One = i;
}
return items_One;
}
};
/// 数据验证(所有数值返回值均为Bool型)
var Sams_validate = {
/* 是否是数字型数据
@str 字符集
*/
IsNumber : function(str){
if (/^\d+$/.test(str)){return true;}else{return false;}
},
/* 是否是数字型数据
@objid 对象ID
*/
IsNumberObj : function(objid){
return this.IsNumber(Sams_object.GetValue(objid));
},
/* 是否是自然数型数据
@str 字符集
*/
IsInt : function(str){
if (/^(\+|-)?\d+$/.test(str)){return true;}else{return false;}
},
/* 是否是自然数型数据
@objid 对象ID
*/
IsIntObj : function(objid){
return this.IsInt(Sams_object.GetValue(objid));
},
/* 是否是中文字符
@str 字符集
*/
IsChinese : function(str)
{
if (/^[\u4e00-\u9fa5]+$/.test(str)){return true;}else{return false;}
},
/* 是否是中文字符
@objid 对象ID
*/
IsChineseObj : function(objid)
{
return this.IsChinese(Sams_object.GetValue(objid));
},
/* 是否为英文字母
@str 字符集
*/
IsLower : function(str)
{
if (/^[A-Za-z]+$/.test(str)){return true}else{return false;}
},
/* 是否为英文字母
@objid 对象ID
*/
IsLowerObj : function(objid)
{
return this.IsLower(Sams_object.GetValue(objid));
},
/* 是否为正确的网址
@str 字符集
*/
IsUrl : function(str)
{
var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;
if(myReg.test(str)){return true;}else{return false;}
},
/* 是否为正确的网址
@objid 对象ID
*/
IsUrlObj : function(objid)
{
return this.IsUrl(Sams_object.GetValue(objid));
},
/* 是否为正确的Email形式
@str 字符集
*/
IsEmail : function(str)
{
var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if(myReg.test(str)){return true;}else{return false;}
},

/* 是否为正确的Email形式
@objid 对象ID
*/
IsEmailObj : function(objid)
{
return this.IsEmail(Sams_object.GetValue(objid));
},
/* 是否为正确的手机号码
@str 字符集
*/
IsMobile : function(str)
{
var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;
var re = new RegExp(regu);
if (re.test(str)){return true;}else{return false;}
},
/* 是否为正确的手机号码
@objid 对象ID
*/
IsMobileObj : function(objid)
{
return this.IsMobile(Sams_object.GetValue(objid));
}
};
/*
实现Ajax功能
Sams_ajax.SendRequest('GET', url, null, recall, "addtohome");
Sams_ajax.SendRequest('GET', url, null, null);
obj.responseText;
*/
var Sams_ajax = {
_objPool: [],
_getInstance: function (){
for (var i = 0; i < this._objPool.length; i ++){
if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){
return this._objPool[i];
}
}
this._objPool[this._objPool.length] = this._createObj();
return this._objPool[this._objPool.length - 1];
},
_createObj : function (){
if (window.XMLHttpRequest){
var objXMLHttp = new XMLHttpRequest();
}
else{
var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var n = 0; n < MSXML.length; n ++){
try{
var objXMLHttp = new ActiveXObject(MSXML[n]);
break;
}
catch(e){
}
}
}
if (objXMLHttp.readyState == null){
objXMLHttp.readyState = 0;
objXMLHttp.addEventListener("load", function (){
objXMLHttp.readyState = 4;
if (typeof objXMLHttp.onreadystatechange == "function"){
objXMLHttp.onreadystatechange();
}
}, false);
}
return objXMLHttp;
},
/// 开始发送请求
SendRequest : function (method, url, data, callback,funparam,funparam2){
var objXMLHttp = this._getInstance();
with(objXMLHttp){
try{
if (url.indexOf("?") > 0){
url += "&randnum=" + Math.random();
}
else{
url += "?randnum=" + Math.random();
}
open(method, url, true);
setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
send(data);
onreadystatechange = function (){
if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
{
callback(objXMLHttp,funparam,funparam2);
}else{
callback(null,funparam,funparam2);
}
}
}
catch(e){
alert(e);
}
}
}
};
/// Cookies操作
var Sams_cookies = {
/* cookies设置函数
@name Cookies名称
@value 值
*/
setCookie : function (name, value)
{
try
{
var argv = setCookie.arguments;
var argc = setCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
if(expires!=null)
{
var LargeExpDate = new Date ();
LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
}
document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));
return true;
}
catch(e)
{
return false;
}
},
/* cookies读取函数
@Name Cookies名称
返回值 Cookies值
*/
getCookie : function (Name)
{
var search = Name + "="
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search)
if(offset != -1)
{
offset += search.length
end = document.cookie.indexOf(";", offset)
if(end == -1) end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
else
{
return;
}
}
}
};