posts - 495,comments - 227,trackbacks - 0
util=function(){
    
return {
        $:
function(id){
            
return document.getElementById(id);
        },
        trim:
function(str){
            
return str.replace(/(^\s+)|(\s+$)/g, "");
        },
        len:
function(str){   
            
return str.replace(/[^\x00-\xff]/g,'**').length;   
        },
        format:
function(str){
            
var arg = arguments;
            
return str.replace(/\{(\d+)\}/g, function(m, i){
                
return arg[parseInt(i)+1];
            });
        },
        each:
function(object, callback, args){
            
var name, i = 0, length = object.length;
            
if ( args ) {
                
if ( length === undefined ) {
                    
for ( name in object )
                        
if ( callback.apply( object[ name ], args ) === false )
                            
break;
                } 
else
                    
for ( ; i < length; )
                        
if ( callback.apply( object[ i++ ], args ) === false )
                            
break;
            } 
else {
                
if ( length === undefined ) {
                    
for ( name in object )
                        
if ( callback.call( object[ name ], name, object[ name ] ) === false )
                            
break;
                } 
else
                    
for ( var value = object[0];
                        i 
< length && callback.call( value, i, value ) !== false; value = object[++i] ){}
            }
        },
        setCookie:
function(name,value,hours,path,domain){
            
var str=new String();
            
var nextTime=new Date();
            nextTime.setHours(nextTime.getHours()
+hours);
            str
=name+"="+escape(value);
            
if(hours)
                str
+=";expires="+nextTime.toGMTString();
            
if(path)
                str
+=";path="+path;
            
if(domain)
                str
+=";domain="+domain;
            document.cookie
=str;
        },
        getCookie:
function(name){
            
var rs=new RegExp("(^|)"+name+"=([^;]*)(;|$)","gi").exec(document.cookie),tmp;
            
if(tmp=rs)
                
return unescape(tmp[2]);
            
return null;
        },
        delCookie:
function(name){
            document.cookie 
= name + "=-1" + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
        },
        
/**
        *url String
        *parms String
        *method String default value "get"
        *asy Boolean defalut value true
        *success Function(http_request.responseText)
        *
*/
        ajax:
function(config){
            
var url=config.url,
                parms
=(config.parms?config.parms:""+ "&t="+new Date().getTime(),
                method
=config.method||"get",
                asy
=true;
            
var http_request=null;

            
if(method.toLowerCase()=="get"){
                url
=url+"?"+parms;
                parms
=null;
            }

            
//开始初始化XMLHttpRequest对象
            if(window.XMLHttpRequest) { //Mozilla 浏览器
                http_request = new XMLHttpRequest();
                
if (http_request.overrideMimeType) {//设置MiME类别
                    http_request.overrideMimeType("text/xml");
                }
            } 
else if (window.ActiveXObject) { // IE浏览器
                try {
                    http_request 
= new ActiveXObject("Msxml2.XMLHTTP");
                } 
catch (e) {
                    
try {                
                        http_request 
= new ActiveXObject("Microsoft.XMLHTTP");
                    } 
catch (e) {}
                }
            }
            
if(!http_request) { // 异常,创建对象实例失败
                throw new Error("不能创建XMLHttpRequest对象实例.");
                
return null;
            }
            http_request.open(method,url,asy);

            http_request.onreadystatechange
=function(){
                
if (http_request.readyState == 4){
                    
try{
                        
if (http_request.status == 200){
                            config.success(http_request.responseText);
                        }
                    }
catch(e){
                        
throw new Error("数据读取失败.");
                    }
                }
            };
            
if(method.toLowerCase()=="post"){
                http_request.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded");
            }
            http_request.send(parms);
        }
    };
}();
posted on 2009-06-10 14:17 SIMONE 阅读(2790) 评论(8)  编辑  收藏 所属分类: JavaScript

FeedBack:
# re: 我写的javascript常用静态方法类,分享大家
2009-06-11 00:07 | 杰德。张
楼主,我是js的初学者,看懂上面代码还有些困难,能不能注释一下给我发一份,不胜感激!!!zhangjin_2006@126.com  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家
2009-06-11 09:12 | good
楼主的正则表达式没有引号把,比如
trim:function(str){
return str.replace(/(^s+)|(s+$)/g, "");
}

  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家
2009-06-11 09:26 | BearRui(AK-47)
trim这些应该直接使用原型注入到String对象中使用更加方便  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家[未登录]
2009-06-11 13:30 | simone
trim:function(str){
return str.replace(/(^s+)|(s+$)/g, "");
}

这样写是正确的,/(^s+)|(s+$)/这样写相当于new Regexp("(^s+)|(s+$)")  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家[未登录]
2009-06-11 13:34 | simone
上边的类可以这样使用
util.trim(" test ");
util.ajax({
url:"http://127.0.0.1/test.jsp",
success:function(data){
alert(data);
}
});  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家[未登录]
2009-06-11 13:38 | simone
@BearRui(AK-47)

这样写主要是想把这些常用的方法封装成一个常用类  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家
2009-06-11 15:08 | SIMONE
对不住大家
上次提交的时候,博客系统把我代码里的\字符全替换成了"
这次好了  回复  更多评论
  
# re: 我写的javascript常用静态方法类,分享大家
2013-10-11 10:56 | log琥珀
其实这个不能算作静态方法,应该是实例方法  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问