matthew Zhang

慢慢学习,慢慢进步!
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

JS类库(转)

Posted on 2008-11-17 22:09  matthewZhang  阅读(316)  评论(0编辑  收藏  举报

 

/**//*------------------------------------------------------------
  2 *                    S.Sams Lifexperience
  3 * CopyRight (C) 2003-2007 S.Sams Lifexperience ScriptClassLib
  4 * MSNLive: S.Sams#msn.com
  5 * Http://blog.8see.net/
  6 * UPdate by : 2007-01-19 转载传播请保留版权
  7 *-----------------------------------------------------------
*/
  
8 
  
9
 
10/**//*    $ 获取指定对象
 11    @element    对象名
 12    可以使用对象名集合,返回值为对象的集合
 13    如果您使用了 Prototype 类库, 请把该函数注释掉
 14    Sams_object.Get() 中同样实现该函数的所有功能
 15
*/
 16
function $(element) {
 
17  if (arguments.length > 1) {
 
18    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
 
19      elements.push($(arguments[i]));
 
20    return elements;
 
21  }
 
22  if (typeof element == 'string')
 
23    element = document.getElementById(element);
 
24  return element;
 
25}
 
26
 
27/// 浏览器相关操作
 28var Sams_browse = {
 
29    /**//*    检测浏览信息 */
 
30    checkBrowser : function ()
 
31    { 
 
32                this.ver=navigator.appVersion 
 
33                this.dom=document.getElementById?1:0 
 
34                this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0
 
35                this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0
 
36                this.ie4=(document.all && !this.dom)?1:0
 
37                this.ns5=(this.dom && parseInt(this.ver) >= 5?1:0
 
38                this.ns4=(document.layers && !this.dom)?1:0
 
39                this.mac=(this.ver.indexOf('Mac'> -1?1:0
 
40                this.ope=(navigator.userAgent.indexOf('Opera')>-1); 
 
41                this.ie=(this.ie6 || this.ie5 || this.ie4) 
 
42                this.ns=(this.ns4 || this.ns5) 
 
43                this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) 
 
44                this.nbw=(!this.bw) 
 
45                return this;
 
46    },
 
47
 
48    /**//*    设为首页
 49        @url        要设为首页的地址
 50    
*/
 
51    SetDefault : function ()
 
52    {
 
53        this.style.behavior='url(#default#homepage)';
 
54        this.setHomePage(this.GetUrl());
 
55        return false;
 
56    },
 
57
 
58    /**//*    复制指定URL地址
 59        @Msg        要写入剪贴板的字符集
 60    
*/
 
61    SetCopy    : function (Msg){
 
62        if(navigator.userAgent.toLowerCase().indexOf('ie'> -1) {
 
63            clipboardData.setData('Text',Msg);
 
64            alert ("网址“"+Msg+"”\n已经复制到您的剪贴板中\n您可以使用Ctrl+V快捷键粘贴到需要的地方");
 
65        }
 
66        else 
 
67        {
 
68            prompt("请复制网站地址:",Msg); 
 
69        }
 
70    },
 
71
 
72    /**//*    加入收藏
 73        @site        站点名称
 74        @url        地址
 75    
*/
 
76    AddBookmark : function (site, url){
 
77        if(navigator.userAgent.toLowerCase().indexOf('ie'> -1) {
 
78            window.external.addFavorite(url,site)
 
79        } else if (navigator.userAgent.toLowerCase().indexOf('opera'> -1) {
 
80            alert ("请使用Ctrl+T将本页加入收藏夹");
 
81        } else {
 
82            alert ("请使用Ctrl+D将本页加入收藏夹");
 
83        }
 
84    },
 
85
 
86    /**//*    打开Url指定宽度和高度的窗口 */
 
87    OpenWindows : function (url,width,height)
 
88    {
 
89        window.open(url,'newwin','width='+width+',height='+height);
 
90        return false;
 
91    },
 
92
 
93    /**//*    禁止浏览器的Javascript错误提示 */
 
94    CloseError : function(){
 
95        window.onerror = function(){return true;};
 
96    },
 
97
 
98    /**//*    获取浏览器URL */
 
99    GetUrl : function(){
100        return location.href;
101    },
102
103    /**//*    获取URL参数 */
104    GetUrlParam : function(){
105        return location.search;
106    },
107    
108    /**//*    获取页面来源 */
109    GetFrom : function(){
110        return document.referrer;
111    },
112
113    /**//*    获取指定的URL参数值
114        @name        参数名
115    
*/
116    Request : function(name){
117        var GetUrl = this.GetUrl();
118        var Plist = new Array();
119        if(GetUrl.indexOf('?'> 0)
120        {
121            Plist = GetUrl.split('?')[1].split('&');
122        }
123        else if(GetUrl.indexOf('#'> 0)
124        {
125            Plist = GetUrl.split('#')[1].split('&');
126        }
127        if (GetUrl.length > 0)
128        {
129            for(var i=0; i<Plist.length; i++)
130            {
131                var GetValue = Plist[i].split('=');
132                if (GetValue[0].toUpperCase() == name.toUpperCase())
133                {
134                    return GetValue[1];
135                    break;
136                }
137            }
138            return;
139        }
140    },
141
142    /**//*    直接将HTML写到新窗口
143        @title        标题
144        @msg        内容
145    
*/
146    Popmsg : function PopIt(title,msg)
147    {
148        var popup = window.open('','popDialog','height=500,width=400,scrollbars=yes');
149        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>');
150        popup.document.close();
151    }
152};
153
154
155/// 对象操作
156var Sams_object = {
157    
158    /**//*    创建一个DIV对象
159        @ID            要创建的对象ID
160        @ClassName    创建对象的Class
161        @SetValue    设置该对象值
162        @ToDiv        将对象追加到指定的对象,如指定的对象不存在,则追加在Body的后面
163        返回        创建后的对象
164    
*/
165    CreateDiv : function (ID,ClassName,SetValue,ToDiv){
166        var creatediv = document.createElement('div');
167        if(ID != null) creatediv.id = ID;
168        creatediv.style.position = 'absolute';
169        if(ClassName != null) creatediv.className = ClassName;
170        if(this.Get(ToDiv))
171        {
172            this.Get(ToDiv).appendChild(creatediv);
173        }
174        else
175        {
176            document.getElementsByTagName('body')[0].appendChild(creatediv);
177        }
178        this.SetValue(ID,SetValue);
179        return this.Get(ID);
180    },
181    
182    /**//*    删除指定DIV对象
183        @objid        要删除的对象ID
184        返回        Bool 操作结果
185    
*/
186    DeleteDiv : function (objid)
187    {
188        try
189        {
190            if(this.Get(objid))
191            {
192                var GetParent = this.Get(objid).parentNode;
193                GetParent.removeChild(this.Get(objid));
194                return true;
195            }
196            else
197            {
198                return false;
199            }
200        }
201        catch(e)
202        {
203            return false;
204        }
205    },
206
207    /**//*    获取浏览器对象
208        @id        要获取的对象ID
209        可以使用对象名集合,返回值为对象的集合
210    
*/
211    Get : function (objid) {
212        if (arguments.length > 1) {
213            for (var i = 0, objids = [], length = arguments.length; i < length; i++)
214              objids.push(this.Get(arguments[i]));
215            return objids;
216        }
217        if (typeof objid == 'string')
218        {
219            if (document.getElementById) {
220                objid = document.getElementById(objid);
221            } else if (document.all) {
222                objid = document.all[objid];
223            } else if (document.layers) {
224                objid = document.layers[objid];
225            }
226        }
227        return objid;
228    },
229    
230    /**//*    获取对象的值
231        @objid        对象ID
232    
*/
233    GetValue : function (objid) {
234        if (typeof objid == 'string')
235        {
236            var getTagName = this.Get(objid).tagName.toLowerCase();
237            if (getTagName == 'input' || getTagName == 'textarea' || getTagName == 'select')
238            {
239                return this.Get(objid).value;
240            }
241            else if (getTagName == 'div' || getTagName == 'span')
242            {
243                return this.Get(objid).innerText;
244            }
245        }
246        else if (typeof objid == 'object')
247        {
248            return objid.value;
249        }
250    },
251
252    /**//*    设置指定对象的值,实现可以直接赋值或清除操作
253        @objid        对象ID
254        @inserValue    传入值(可选项 Null:清除该ID的值, 则直接赋值)
255    
*/
256    SetValue: function(objid,inserValue) {
257        var getTagName = this.Get(objid).tagName.toLowerCase();
258        if (inserValue == null) inserValue = '';
259        if (getTagName == 'input' || getTagName == 'textarea')
260        {
261            this.Get(objid).value = inserValue;
262        }
263        else if (getTagName == 'div' || getTagName == 'sapn')
264        {
265            
266            this.Get(objid).innerText = inserValue;
267        }
268    },
269    
270    /**//*    拷贝对象值到剪贴板  
271        @str        对象值
272    
*/
273    CopyCode : function (str) {
274        var rng = document.body.createTextRange();
275        rng.moveToElementText(str);
276        rng.scrollIntoView();
277        rng.select();
278        rng.execCommand("Copy");
279        rng.collapse(false);
280    },
281    
282    /**//*    显示隐藏一个对象 
283        @Objid        对象ID
284        @isshow        具体操作,指定Obj为False : none或者True : block (可选)
285    
*/
286    ShowHidd : function(objid,isshow){
287        if (isshow != null)
288        {
289            if(isshow)
290            {
291                this.Get(objid).style.display = 'block';
292            }
293            else
294            {
295                this.Get(objid).style.display = 'none';
296            }
297        }
298        else
299        {
300            if(this.Get(objid).style.display == 'none')
301            {
302                this.Get(objid).style.display = 'block';
303            }
304            else
305            {
306                this.Get(objid).style.display = 'none';
307            }
308        }
309    },
310    
311    /**//*    当前对象是否可见
312        @objid        对象ID
313    
*/
314    IsVisible : function(objid){
315        if(this.Get(objid))
316        {
317            try
318            {
319                if (this.Get(objid).style.display == 'none')
320                {
321                    return false
322                }
323                if(this.Get(objid).style.visibility == 'hidden')
324                {
325                    return false;
326                }
327                return true;
328            }
329            catch(e)
330            {
331                return false;
332            }
333        }
334        else
335        {
336            return false;
337        }
338    }
339};
340
341/// 字符处理
342var Sams_string = {
343    /**//*    取左边的指定长度的值  
344        @str        要处理的字符集
345        @n            长度
346    
*/
347    Left : function (str,n)
348    {
349        if(str.length > 0)
350        {
351            if(n>str.length) n = str.length;
352            return str.substr(0,n)
353        }
354        else
355        {
356         return;
357        }
358    },
359    
360    /**//*    取右边的指定长度的值   
361        @str        要处理的字符集
362        @n            长度
363    
*/
364    Right : function (str,n)
365    {
366        if(str.length > 0)
367        {
368            if(n>=str.length) return str;
369            return str.substr(str.length-n,n);
370        }
371        else
372        {
373            return;
374        }
375    },
376    
377    /**//*    Trim:清除两边空格 
378        @str        要处理的字符集
379    
*/
380    Trim : function (str) 
381    {
382        if (typeof str == 'string'return str.replace(/(^\s*)|(\s*$)/g, '');
383    },
384
385    /**//*    LTrim:清除左边的空格 
386        @str        要处理的字符集
387    
*/
388    Ltrim : function (str) 
389    { 
390        if (typeof str == 'string'return str.replace(/(^\s*)/g, '');
391    },
392
393    /**//*    RTrim: 清除右边的空格 
394        @str        要处理的字符集
395    
*/
396    Rtrim : function (str) 
397    { 
398        if (typeof str == 'string'return str.replace(/(\s*$)/g, '');
399    },
400    
401    /**//*    清除前后的非字符
402        @str        要处理的字符集
403    
*/
404    strip : function(str) {
405        if (typeof str == 'string'return str.replace(/^\s+/'').replace(/(^\s*)|(\s*$)/g, '');
406    },
407
408    /**//*    过滤字符里面的HTML标签
409        @str        要处理的字符集
410    
*/
411    stripTags : function(str) {
412        if (typeof str == 'string')return str.replace(/<\/?[^>]+>/gi, '').replace(/(^\s*)|(\s*$)/g, '');
413    }
414};
415
416/// 时间相关操作
417var Sams_time = {
418    /**//*    获取当天日期 yyyy-MM-dd */
419    GetDateNow : function (){
420        var d,y,m,dd;
421        d = new Date(); 
422        y = d.getYear();
423        m = d.getMonth() + 1;
424        dd = d.getDate();                                                
425        return y+"-"+m+"-"+dd;
426    },
427
428    /**//*    获取指定日期后的特定天数的日期值
429        @toDate        当前指定的日期
430        @N            要添加的日期数
431    
*/ 
432    AddDays : function(toDate,N){
433        var aDate=this._cvtISOToDate(toDate);
434        if (!aDate) return "";
435        var millis=86400000 * N;
436        aDate=new Date(aDate.getTime()+millis);
437        return this._fmtDateISO(aDate);
438    },
439    _fmtDateISO : function (aDate) {
440        with (aDate) {
441            var mm=getMonth()+1;
442            if (mm<10) {mm='0'+mm;}
443            var dd=getDate();
444            if (dd<10) {dd='0'+dd;}
445            return (getFullYear() + '-' + mm + '-' + dd);
446        }
447    },
448    _cvtISOToDate : function (isoDate) {
449        var atomDate= isoDate.split('-');
450        var aDate=new Date(parseInt(atomDate[0],10),parseInt(atomDate[1],10)-1,parseInt(atomDate[2],10),6,0,0);
451        return aDate;
452    }
453};
454
455/// 图像相关操作
456var Sams_media = {
457    /**//*    为单一图像添加鼠标中键放大缩小功能, 批量可以直接用 ResizeImage(指定添加该功能的图片大小:Int) 即可 (该功能只适用于IE)
458        objid        对象ID    
459    
*/
460    ZoomFun : function(objid){
461        Sams_object.Get(objid).onmousewheel = function(){return Sams_media.imagecontrol(this);}
462    },
463
464    /**//*    重置图片尺寸同时添加放大功能 (该功能只适用于IE) 
465        @IntSize    指定图像的大小
466        如果适合图像大小就添加放大缩小功能
467    
*/ 
468    ResizeImage: function (IntSize) {
469        var imgsinlog=document.getElementsByTagName('img');
470        for(j=0; j<imgsinlog.length; j++) {
471            if (imgsinlog[j].width >= IntSize) {
472                imgsinlog[j].width = IntSize;
473                imgsinlog[j].style.cursor= 'pointer';
474                imgsinlog[j].onclick = function() {window.open(this.src);}
475                if (navigator.userAgent.toLowerCase().indexOf('ie'> -1) {
476                    imgsinlog[j].title = '您可以用鼠标中键或者使用Ctrl+鼠标滚轮缩放图片,点击图片可在新窗口打开';
477                    imgsinlog[j].onmousewheel = function(){return Sams_media.imagecontrol(this);};
478                }
479                else
480                {
481                    imgsinlog[j].title = '点击图片可在新窗口打开';
482                }
483            }
484        }
485    },
486    imagecontrol : function(obj){
487        var zoom=parseInt(obj.style.zoom, 10)||100;zoom+=event.wheelDelta/12;
488        if (zoom>0) obj.style.zoom=zoom+'%';
489        return false;
490    },
491
492    /**//*    如果图像出现下载不了等异常,显示的错误提示图片
493        @errimgpath    显示错误提示的图像路径
494    
*/ 
495    ImagesError : function(errimgpath){
496        var imglist = document.getElementsByTagName('img');
497        for(j=0; j<imglist.length; j++) {
498            imglist[j].onerror = function(){
499                this.src = errimgpath;
500            }
501        }
502    },
503
504    /**//*    显示媒体
505        @mFile        文件路径
506        @mFileType    文件类型(可为空,如为Flash,要指定为swf类型)
507        @ObjID        对象ID
508        @mWidth        显示的对象宽度
509        @mHeight    显示对象的高度
510        注: 可以指定对象的ID, 如果ID不存在,会自动创建,追加在Body后面
511    
*/
512    ShowMedia : function (mFile, mFileType, ObjID, mWidth, mHeight) {
513        var mediaStr;
514        switch(mFileType){
515            case "swf":
516                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>";
517                break;
518            default :
519                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>";
520        }
521        
522        var mediaDiv = Sams_object.Get(ObjID);
523        
524        if (mediaDiv) {
525            mediaDiv.innerHTML = mediaStr;
526        } 
527        else
528        {
529            mediaDiv = document.createElement("div");
530            mediaDiv.id = ObjID;
531            mediaDiv.innerHTML = mediaStr;
532            document.getElementsByTagName('body')[0].appendChild(mediaDiv);
533        }
534        return false;
535    }
536};
537
538/// 样式相关操作
539var Sams_style = {
540    /**//*    改变字体大小
541        @objid        对象ID
542        @size        字号
543    
*/
544    doZoom : function (objid,size){
545        Sams_object.Get(objid).style.fontSize=size+'px';
546    },
547
548    /**//*    改变指定对象样式
549        @objid        对象ID
550        @className    要更改的ClassName
551    
*/
552    ClassName: function(objid, className) {
553        Sams_object.Get(objid).className = className;
554    },
555    
556    /**//*    对象定位
557        @obj        要定位的对象
558        返回        X.Y 结果的数组对象
559    
*/
560    GotoXY : function (obj) {
561        var t=obj.offsetTop; 
562        var l=obj.offsetLeft; 
563        while(obj=obj.offsetParent){ 
564            t+=obj.offsetTop; 
565            l+=obj.offsetLeft; 
566        }
567        return Array(t,l);
568    }
569};
570
571/// 科学计算
572var Sams_account = {
573    /**//*    逢1进10计算
574        @ 数值
575    
*/
576    GetTen: function (i)
577    {
578        var items_One,Get_One;
579        if (i.length > 1&& (/^\d+$/.test(i)))
580        {
581           items_One = i.substr(0,i.length-1);
582           Get_One = i.substr(i.length-1,1);
583           if (parseInt(Get_One)>0)
584           {
585            items_One = parseInt(items_One)+1;
586            items_One = items_One + '0';
587           }
588           else
589            {
590            items_One = items_One + '0';    
591            }
592        }
593        else
594        {
595            items_One = i;
596        }
597        return items_One;
598    }
599};
600
601/// 数据验证(所有数值返回值均为Bool型)
602var Sams_validate = {
603    /**//*    是否是数字型数据
604        @str        字符集
605    
*/
606    IsNumber : function(str){
607        if (/^\d+$/.test(str)){return true;}else{return false;}
608    },
609
610    /**//*    是否是数字型数据
611        @objid        对象ID
612    
*/
613    IsNumberObj : function(objid){
614        return this.IsNumber(Sams_object.GetValue(objid));
615    },
616
617    /**//*    是否是自然数型数据
618        @str        字符集
619    
*/
620    IsInt : function(str){
621        if (/^(\+|-)?\d+$/.test(str)){return true;}else{return false;}
622    },
623
624    /**//*    是否是自然数型数据
625        @objid        对象ID
626    
*/
627    IsIntObj : function(objid){
628        return this.IsInt(Sams_object.GetValue(objid));
629    },
630    
631    /**//*    是否是中文字符
632        @str        字符集
633    
*/
634    IsChinese : function(str)
635    {
636        if (/^[\u4e00-\u9fa5]+$/.test(str)){return true;}else{return false;}
637    },
638
639    /**//*    是否是中文字符
640        @objid        对象ID
641    
*/
642    IsChineseObj : function(objid)
643    {
644        return this.IsChinese(Sams_object.GetValue(objid));
645    },
646
647    /**//*    是否为英文字母
648        @str        字符集
649    
*/
650    IsLower : function(str)
651    {
652         if (/^[A-Za-z]+$/.test(str)){return true}else{return false;}
653    },
654
655    /**//*    是否为英文字母
656        @objid        对象ID
657    
*/
658    IsLowerObj : function(objid)
659    {
660         return this.IsLower(Sams_object.GetValue(objid));
661    },
662
663    /**//*    是否为正确的网址
664        @str        字符集
665    
*/
666    IsUrl : function(str)
667    {
668        var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;    
669        if(myReg.test(str)){return true;}else{return false;}
670    },
671
672    /**//*    是否为正确的网址
673        @objid        对象ID
674    
*/
675    IsUrlObj : function(objid)
676    {
677        return this.IsUrl(Sams_object.GetValue(objid));
678    },
679
680    /**//*    是否为正确的Email形式
681        @str        字符集
682    
*/
683    IsEmail : function(str)
684    {
685        var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
686        if(myReg.test(str)){return true;}else{return false;}
687    },
688    
689    
690    /**//*    是否为正确的Email形式
691        @objid        对象ID
692    
*/
693    IsEmailObj : function(objid)
694    {
695        return this.IsEmail(Sams_object.GetValue(objid));
696    },
697
698    /**//*    是否为正确的手机号码
699        @str        字符集
700    
*/
701    IsMobile : function(str)
702    {
703        var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
704        var re = new RegExp(regu);   
705        if (re.test(str)){return true;}else{return false;}
706    },
707
708    /**//*    是否为正确的手机号码
709        @objid        对象ID
710    
*/
711    IsMobileObj : function(objid)
712    {
713        return this.IsMobile(Sams_object.GetValue(objid));
714    }
715};
716
717/**//*
718    实现Ajax功能
719    Sams_ajax.SendRequest('GET', url, null, recall, "addtohome");
720    Sams_ajax.SendRequest('GET', url, null, null);
721    obj.responseText;
722
*/
723
var Sams_ajax = {
724    _objPool: [],
725    _getInstance: function (){
726        for (var i = 0; i < this._objPool.length; i ++){
727            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){
728                return this._objPool[i];
729            }
730        }
731        this._objPool[this._objPool.length] = this._createObj();
732        return this._objPool[this._objPool.length - 1];
733    },
734     _createObj : function (){
735        if (window.XMLHttpRequest){
736            var objXMLHttp = new XMLHttpRequest();
737        }
738        else{
739            var MSXML = ['MSXML2.XMLHTTP.5.0''MSXML2.XMLHTTP.4.0''MSXML2.XMLHTTP.3.0''MSXML2.XMLHTTP''Microsoft.XMLHTTP'];
740            for(var n = 0; n < MSXML.length; n ++){
741                try{
742                    var objXMLHttp = new ActiveXObject(MSXML[n]);
743                    break;
744                }
745                catch(e){
746                }
747            }
748         }          
749        if (objXMLHttp.readyState == null){
750            objXMLHttp.readyState = 0;
751            objXMLHttp.addEventListener("load"function (){
752                    objXMLHttp.readyState = 4;
753                    if (typeof objXMLHttp.onreadystatechange == "function"){
754                        objXMLHttp.onreadystatechange();
755                    }
756                },  false);
757        }
758        return objXMLHttp;
759    },
760
761    /// 开始发送请求
762    SendRequest : function (method, url, data, callback,funparam,funparam2){
763        var objXMLHttp = this._getInstance();
764        with(objXMLHttp){
765            try{
766                if (url.indexOf("?"> 0){
767                    url += "&randnum=" + Math.random();
768                }
769                else{
770                    url += "?randnum=" + Math.random();
771                }
772                open(method, url, true);            
773                setRequestHeader('Content-Type''application/x-www-form-urlencoded; charset=UTF-8');
774                send(data);
775                onreadystatechange = function (){
776                    if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
777                    {
778                        callback(objXMLHttp,funparam,funparam2);
779                    }else{
780                        callback(null,funparam,funparam2);
781                    }
782                }
783            }
784            catch(e){
785                alert(e);
786            }
787        }
788    }
789};
790
791/// Cookies操作
792var Sams_cookies = {
793    /**//*    cookies设置函数
794        @name        Cookies名称
795        @value        值
796    
*/
797    setCookie : function (name, value)
798    {
799        try
800        {
801            var argv = setCookie.arguments;
802            var argc = setCookie.arguments.length;
803            var expires = (argc > 2? argv[2] : null;
804            if(expires!=null)
805            {
806                var LargeExpDate = new Date ();
807                LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
808            }
809            document.cookie = name + "=" + escape (value)+((expires == null? "" : ("; expires=" +LargeExpDate.toGMTString()));
810            return true;
811        }
812        catch(e)
813        {
814            return false;
815        }
816    },
817
818    /**//*    cookies读取函数
819        @Name        Cookies名称
820        返回值        Cookies值
821    
*/
822    getCookie : function (Name)
823    {
824        var search = Name + "="
825        if(document.cookie.length > 0
826        {
827            offset = document.cookie.indexOf(search)
828            if(offset != -1
829            {
830                offset += search.length
831                end = document.cookie.indexOf(";", offset)
832                if(end == -1) end = document.cookie.length
833                return unescape(document.cookie.substring(offset, end))
834            }
835            else
836            {
837                return;
838            }
839        }
840    }
841};
842