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

Javascript
javascript innerText和innerHtml应用
图像替换新技术 状态域方法
JavaScript 判断判断某个对象是Object还是一个Array
Extjs 几个方法的讨论
JavaScript 学习笔记(十五)
javascript 匿名函数的理解(透彻版)
Jquery 常用方法经典总结
jquery 批量上传图片实现代码
javascript中的array数组使用技巧
详细讲解JS节点知识
javascript让setInteval里的函数参数中的this指向特定的对象
javaScript 关闭浏览器 (不弹出提示框)
对字符串进行HTML编码和解码的JavaScript函数
javascript 三种编解码方式
js左侧多级菜单动态的解决方案
JavaScript 学习笔记(十六) js事件
JavaScript面向对象之静态与非静态类
javascript两段代码,两个小技巧
js中鼠标滚轮事件详解(firefox多浏览器)
js实现的仿Photoshop鼠标滚轮控制输入框取值(修正兼容Chrome)

Javascript 中的 JavaScript 应用类库代码


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