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

Javascript
javascript比较文档位置
关于document.cookie的使用javascript
js让一行页脚保持在底部
多浏览器兼容的右下角广告代码(已测)
javascript onkeydown实现键盘快捷键控制页面
javascript的键盘控制事件说明
不懂JavaScript应该怎样学
用javascript实现截取字符串包含中文处理的函数
摘自启点的main.js
js tab效果代码增强版
慢慢展开再慢慢收起的javascript广告效果
javascript String 对象
JS查看对象功能代码
javascript点击才出现验证码
js实现双击单元格变成文本输入框效果代码
js通用滑动门类
js动画效果打开层 关闭层
js插入字符到textarea的效果代码
javascript 获取网页标题
js调用flash的效果代码

Javascript 中的 JavaScript 应用类库代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 179 ::
收藏到网摘: 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;
}
}
}
};