JS 常用类库

来源:互联网 发布:java四种访问权限 编辑:程序博客网 时间:2024/05/02 21:33

/*当要调用某一个函数时,比如要调用checkBrowser ()函数!Sams_browse.checkBrowser ()即可调用*/

 

/* $ 获取指定对象
@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,menubar,titlebar,location)
        {
            window.open(url,'newwin','width='+width+',height='+height+',menubar'+menubar+',titlebar'+titlebar+',location'+location);
            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;
               }
            }
        }
};

原创粉丝点击