Javascript Common Tools Class

/*
Javascript Common Tools Class 
Email : [email protected]
Blog : http://www.cnblogs.com/DanielChow
*/
// 2010-2-20 update
var  Js  =   new  Object;
Js.IsDebug 
=   true ;
Js.Domain 
=   " 127.0.0.1 " ;
Js.NetUrl 
=   " http://127.0.0.1 " ;
Js.Locale 
=   " / " ;
Js.CopyRight 
=   " (C) Your.COM " ;
Js.Event 
=   new  Object;
Js.Event.add 
=   function (o, t, f) {
    
if  (o.addEventListener) {
        o.addEventListener(t, f, 
false );
    } 
else   if  (o.attachEvent) {
        o.attachEvent(
" on "   +  t, f);
    } 
else  {
        o[
" on "   +  t]  =  f;
    }
};
Js.Event.remove 
=   function (o, t, f) {
    
if  (o.removeEventListener) {
        o.removeEventListener(t, f, 
false );
    } 
else   if  (o.detachEvent) {
        o.detachEvent(
" on "   +  t, f);
    } 
else  {
        o[
" on "   +  t]  =   null ;
    }
};
/* compatible in IE6+,ff3.0,chrome,oprea */
Js.floatElement 
=   function (Id, Position) {   
    _bodyfrm 
=  (document.compatMode.toLowerCase()  ==   " css1compat " ?  document.documentElement : document.body;
    _adst 
=  document.getElementById(Id).style;_adst.position  =   " absolute " ; _intWidth  =  _adst.width.replace( " px " "" ); _intHeight  =  _adst.height.replace( " px " "" );
    _move(Position);window.onscroll 
=  window.onresize  =   function () {_move(Position);};
    
function  _move(Position) {
        
switch  (Position) {
            
case   " rightbottom " : _adst.left  =  (_bodyfrm.scrollLeft  +  _bodyfrm.clientWidth  -  _intWidth)  +   " px " ;_adst.top  =  (_bodyfrm.clientHeight  +  _bodyfrm.scrollTop  -  _intHeight)  +   " px " ; break ;
            
case   " leftbottom " : _adst.left  =   " 0px " ;_adst.top  =  (_bodyfrm.clientHeight  +  _bodyfrm.scrollTop  -  _intHeight)  +   " px " ; break ;
            
case   " righttop " : _adst.left  =  (_bodyfrm.scrollLeft  +  _bodyfrm.clientWidth  -  _intWidth)  +   " px " ;_adst.top  =  _bodyfrm.scrollTop  +   " px " break ;
            
case   " lefttop " : _adst.left  =   " 0px " ;  _adst.top  =  _bodyfrm.scrollTop  +   " px " break ;
        };
    };
};
Js.Guid 
=   function () {
    
var  guid  =   "" ;
    
for  ( var  i  =   1 ; i  <=   32 ; i ++ ) {
        
var  n  =  Math.floor(Math.random()  *   16.0 ).toString( 16 );
        guid 
+=  n;
        
if  ((i  ==   8 ||  (i  ==   12 ||  (i  ==   16 ||  (i  ==   20 ))
            guid 
+=   " - " ;
    }
    
return  guid;
};
Js.SuggestStr 
=   function (len, IsAC) {
    
// include additional characters
     var  AC  =   ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ~!@$^*+-|/ '
    
var  noAC  =   ' abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ '
    
function  returnStr(list, len) {
       
var  re  =   '' ;
        
for  (i  =   0 ; i  <  len; i ++ ) {
            re 
+=  list.charAt(Math.floor(Math.random()  *  list.length))
        }
        
return  re;
    }
    
return  IsAC  ?  returnStr(AC, len) : returnStr(noAC, len);
};
Js.Str2XML 
=   function (str) {
    
if  (window.ActiveXObject) {
        xmlDoc 
=   new  ActiveXObject( " Microsoft.XMLDOM " );
        xmlDoc.async 
=   " false " ;
        xmlDoc.loadXML(str);
        
return  xmlDoc;
    } 
else  {
        parser 
=   new  DOMParser();
        xmlDoc 
=  parser.parseFromString(str,  " text/xml " );
        
return  xmlDoc;
    }
};
Js.XML2Str 
=   function (xmlObject) {
    
if  (window.ActiveXObject) {
        
return  xmlObject.xml;
    } 
else  {
        
return  ( new  XMLSerializer()).serializeToString(xmlObject);
    }
};
Js.Str2Json 
=   function (str) {
   
return  eval( ' ( '   +  str  +   ' ) ' );
}
Js.ErrorHandler 
=   function (msg, url, l) {
    
// if (Js.IsDebug) {
     //     // for debug
     //     var txt = "";
     //     txt = "本页中存在错误。\n\n"
     //     txt += "错误:" + msg + "\n"
     //     txt += "URL: " + url + "\n"
     //     txt += "行:" + l + "\n\n"
     //     txt += "点击“确定”继续。\n\n"
     //     alert(txt);
     // }
     return   false ;
    
//  false , page response errors directly
     //  true , var script above to handle errors
     //  or you can save errors to server (to create logs file)
};

Js.Url 
=  {
    encode: 
function (string) {
        
return  escape( this ._utf8_encode(string));
    },
    decode: 
function (string) {
        
return   this ._utf8_decode(unescape(string));
    },
    request:
function (string)
    {
        
var  url  =  location.href;  var  paraObj  =  {};  var  paraString  =  url.substring(url.indexOf( " ? " +   1 , url.length).split( " & " );        
        
for  (i  =   0 ; j  =  paraString[i]; i ++ ) { paraObj[j.substring( 0 , j.indexOf( " = " )).toLowerCase()]  =  j.substring(j.indexOf( " = " +   1 , j.length);}
        
var  returnValue  =  paraObj[string.toLowerCase()];
        
if  ( typeof  (returnValue)  ==   " undefined " ) {  return   "" ; }  else  {  return  returnValue; }
    },
    
//  private method
    _utf8_encode:  function (string) {
        string 
=  string.replace( / \r\n / g,  " \n " );
        
var  utftext  =   "" ;
        
for  ( var  n  =   0 ; n  <  string.length; n ++ ) {
            
var  c  =  string.charCodeAt(n);
            
if  (c  <   128 ) {
                utftext 
+=  String.fromCharCode(c);
            }
            
else   if  ((c  >   127 &&  (c  <   2048 )) {
                utftext 
+=  String.fromCharCode((c  >>   6 |   192 );
                utftext 
+=  String.fromCharCode((c  &   63 |   128 );
            }
            
else  {
                utftext 
+=  String.fromCharCode((c  >>   12 |   224 );
                utftext 
+=  String.fromCharCode(((c  >>   6 &   63 |   128 );
                utftext 
+=  String.fromCharCode((c  &   63 |   128 );
            }
        }
        
return  utftext;
    },
    _utf8_decode: 
function (utftext) {
        
var  string  =   "" ;
        
var  i  =   0 ;
        
var  c  =  c1  =  c2  =   0 ;
        
while  (i  <  utftext.length) {
            c 
=  utftext.charCodeAt(i);
            
if  (c  <   128 ) {
                string 
+=  String.fromCharCode(c);
                i
++ ;
            }
            
else   if  ((c  >   191 &&  (c  <   224 )) {
                c2 
=  utftext.charCodeAt(i  +   1 );
                string 
+=  String.fromCharCode(((c  &   31 <<   6 |  (c2  &   63 ));
                i 
+=   2 ;
            }
            
else  {
                c2 
=  utftext.charCodeAt(i  +   1 );
                c3 
=  utftext.charCodeAt(i  +   2 );
                string 
+=  String.fromCharCode(((c  &   15 <<   12 |  ((c2  &   63 <<   6 |  (c3  &   63 ));
                i 
+=   3 ;
            }
        }
        
return  string;
    }
}

 

 

转载于:https://www.cnblogs.com/DanielChow/archive/2010/01/03/1638503.html

你可能感兴趣的:(Javascript Common Tools Class)