js代码压缩/解压程序

    朋友问起我jGridViewBar的压缩是用的什么工具,我用的是一个普通的HTML的转换器,现在找出来与大家共享。
    在线Demo:http://www.senparc.com/WebTools.xhtml/JsPack

    把下列代码保存为.html直接在浏览器中打开就能用

js代码压缩/解压程序<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
js代码压缩/解压程序
<html>
js代码压缩/解压程序
<head>
js代码压缩/解压程序
<title>Javascript Compressor</title>
js代码压缩/解压程序
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
js代码压缩/解压程序js代码压缩/解压程序
<script type="text/javascript">js代码压缩/解压程序
js代码压缩/解压程序js代码压缩/解压程序
function ICommon(that)js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序
if(that!=null)js代码压缩/解压程序{
js代码压缩/解压程序   that.inherit
=Common.prototype.inherit;
js代码压缩/解压程序   that.specialize
=Common.prototype.specialize
js代码压缩/解压程序}

js代码压缩/解压程序
return that
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序ICommon.specialize
=function(p,c)js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序
if(!p)p=js代码压缩/解压程序{};
js代码压缩/解压程序
if(!c)c=p.constructor;
js代码压缩/解压程序js代码压缩/解压程序
if(c==js代码压缩/解压程序{}.constructor) c=new Function("this.inherit()");
js代码压缩/解压程序c.valueOf
=new Function("return this");
js代码压缩/解压程序c.valueOf.prototype
=new this.valueOf;
js代码压缩/解压程序c.valueOf.prototype.specialize(p);
js代码压缩/解压程序c.prototype
=new c.valueOf;
js代码压缩/解压程序c.valueOf.prototype.constructor
=c.prototype.constructor=c;
js代码压缩/解压程序c.ancestor
=this;
js代码压缩/解压程序c.specialize
=arguments.callee;
js代码压缩/解压程序c.ancestorOf
=this.ancestorOf;
js代码压缩/解压程序
return c
js代码压缩/解压程序}
;
js代码压缩/解压程序ICommon.valueOf
=new Function("return this");
js代码压缩/解压程序js代码压缩/解压程序ICommon.valueOf.prototype
=js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序constructor:ICommon,inherit:
function()js代码压缩/解压程序{
js代码压缩/解压程序   
return arguments.callee.caller.ancestor.apply(this,arguments)
js代码压缩/解压程序js代码压缩/解压程序}
,specialize:function(that)js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序   
if(this==this.constructor.prototype&&this.constructor.specialize)js代码压缩/解压程序{
js代码压缩/解压程序    
return this.constructor.valueOf.prototype.specialize(that)
js代码压缩/解压程序   }

js代码压缩/解压程序js代码压缩/解压程序   
for(var i in that)js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序    
switch(i)js代码压缩/解压程序{
js代码压缩/解压程序     
case"constructor":case"toString":case"valueOf":continue
js代码压缩/解压程序    }

js代码压缩/解压程序js代码压缩/解压程序    
if(typeof that[i]=="function"&&that[i]!=this[i])js代码压缩/解压程序{
js代码压缩/解压程序     that[i].ancestor
=this[i]
js代码压缩/解压程序    }

js代码压缩/解压程序    
this[i]=that[i]
js代码压缩/解压程序   }

js代码压缩/解压程序js代码压缩/解压程序   
if(that.toString!=this.toString&&that.toString!=js代码压缩/解压程序{}.toString)js代码压缩/解压程序{
js代码压缩/解压程序    that.toString.ancestor
=this.toString;
js代码压缩/解压程序    
this.toString=that.toString
js代码压缩/解压程序   }

js代码压缩/解压程序   
return this
js代码压缩/解压程序}

js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function Common()js代码压缩/解压程序{};
js代码压缩/解压程序js代码压缩/解压程序
this.Common=ICommon.specialize(js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序constructor:Common,toString:
function()js代码压缩/解压程序{
js代码压缩/解压程序   
return"[common "+(this.constructor.className||"Object")+"]"
js代码压缩/解压程序js代码压缩/解压程序}
,instanceOf:function(klass)js代码压缩/解压程序{
js代码压缩/解压程序   
return this.constructor==klass||klass.ancestorOf(this.constructor)
js代码压缩/解压程序}

js代码压缩/解压程序}
);
js代码压缩/解压程序Common.className
="Common";
js代码压缩/解压程序Common.ancestor
=null;
js代码压缩/解压程序js代码压缩/解压程序Common.ancestorOf
=function(klass)js代码压缩/解压程序{
js代码压缩/解压程序
while(klass&&klass.ancestor!=this) klass=klass.ancestor;
js代码压缩/解压程序
return Boolean(klass)
js代码压缩/解压程序}
;
js代码压缩/解压程序Common.valueOf.ancestor
=ICommon;
js代码压缩/解压程序js代码压缩/解压程序
function ParseMaster()js代码压缩/解压程序{
js代码压缩/解压程序
var E=0,R=1,L=2;
js代码压缩/解压程序
var G=/\(/g,S=/\$\d/,I=/^\$\d+$/,T=/(['"])\1\+(.*)\+\1\1$/,ES=/\\./g,Q=/'/,DE=/\x01[^\x01]*\x01/g;
js代码压缩/解压程序var self=this;
js代码压缩/解压程序this.add=function(e,r){
js代码压缩/解压程序   if(!r)r=
"";
js代码压缩/解压程序   var l=(_14(String(e)).match(G)||
"").length+1;
js代码压缩/解压程序   if(S.test(r)){
js代码压缩/解压程序    if(I.test(r)){
js代码压缩/解压程序     r=parseInt(r.slice(1))-1
js代码压缩/解压程序    }else{
js代码压缩/解压程序     var i=l;
js代码压缩/解压程序     var q=Q.test(_14(r))?'
"':"'";
js代码压缩/解压程序     
while(i) r=r.split("$"+i--).join(q+"+a[o+"+i+"]+"+q);
js代码压缩/解压程序     r
=new Function("a,o","return"+q+r.replace(T,"$1")+q)
js代码压缩/解压程序    }

js代码压缩/解压程序   }
js代码压缩/解压程序   _33(e
||"/^$/",r,l)
js代码压缩/解压程序};
js代码压缩/解压程序js代码压缩/解压程序
this.exec=function(s)js代码压缩/解压程序{
js代码压缩/解压程序   _3.length
=0;
js代码压缩/解压程序   
return _30(_5(s,this.escapeChar).replace(new RegExp(_1,this.ignoreCase?"gi":"g"),_31),this.escapeChar).replace(DE,"")
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
this.reset=function()js代码压缩/解压程序{
js代码压缩/解压程序   _1.length
=0}
;
js代码压缩/解压程序   
var _3=[];
js代码压缩/解压程序   
var _1=[];
js代码压缩/解压程序js代码压缩/解压程序   
var _32=function()js代码压缩/解压程序return"("+String(this[E]).slice(1,-1)+")" };
js代码压缩/解压程序js代码压缩/解压程序_1.toString
=function()js代码压缩/解压程序{return this.join("|")};
js代码压缩/解压程序js代码压缩/解压程序
function _33()js代码压缩/解压程序{
js代码压缩/解压程序   arguments.toString
=_32;
js代码压缩/解压程序   _1[_1.length]
=arguments
js代码压缩/解压程序}

js代码压缩/解压程序js代码压缩/解压程序
function _31()js代码压缩/解压程序{
js代码压缩/解压程序   
if(!arguments[0]) return"";
js代码压缩/解压程序   
var i=1,j=0,p;
js代码压缩/解压程序js代码压缩/解压程序   
while(p=_1[j++])js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序    
if(arguments[i])js代码压缩/解压程序{
js代码压缩/解压程序     
var r=p[R];
js代码压缩/解压程序js代码压缩/解压程序     
switch(typeof r)js代码压缩/解压程序{
js代码压缩/解压程序      
case"function":return r(arguments,i);
js代码压缩/解压程序      
case"number":return arguments[r+i]
js代码压缩/解压程序     }

js代码压缩/解压程序     
var d=(arguments[i].indexOf(self.escapeChar)==-1)?"":"\x01"+arguments[i]+"\x01";
js代码压缩/解压程序     
return d+r
js代码压缩/解压程序    }
else i+=p[L]
js代码压缩/解压程序   }

js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _5(s,e)js代码压缩/解压程序{return e?s.replace(new RegExp("\\"+e+"(.)","g"),function(m,c)js代码压缩/解压程序{ _3[_3.length]=c; return e }):s};
js代码压缩/解压程序js代码压缩/解压程序
function _30(s,e)js代码压缩/解压程序{var i=0;return e?s.replace(new RegExp("\\"+e,"g"),function()js代码压缩/解压程序return e+(_3[i++]||"")}):s };
js代码压缩/解压程序js代码压缩/解压程序
function _14(s)js代码压缩/解压程序{return s.replace(ES,"")}
js代码压缩/解压程序};
js代码压缩/解压程序
js代码压缩/解压程序
js代码压缩/解压程序js代码压缩/解压程序ParseMaster.prototype
=js代码压缩/解压程序{ constructor:ParseMaster,ignoreCase:false,escapeChar:"" };
js代码压缩/解压程序js代码压缩/解压程序
if(/MSIE 5.0/.test(navigator.userAgent)) new function()js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序   
var ap=function(f,o,a)js代码压缩/解压程序{f.apply(o,a)};
js代码压缩/解压程序js代码压缩/解压程序   
if(''.replace(/^/,String))js代码压缩/解压程序{
js代码压缩/解压程序    
var _28=String.prototype.replace;
js代码压缩/解压程序js代码压缩/解压程序    
var _29=function(e,r)js代码压缩/解压程序{
js代码压缩/解压程序     
var m,n="",s=this;
js代码压缩/解压程序js代码压缩/解压程序     
while(s&&(m=e.exec(s)))js代码压缩/解压程序{
js代码压缩/解压程序      n
+=s.slice(0,m.index)+ap(r,this,m);
js代码压缩/解压程序      s
=s.slice(m.lastIndex)
js代码压缩/解压程序     }

js代码压缩/解压程序     
return n+s
js代码压缩/解压程序    }
;
js代码压缩/解压程序js代码压缩/解压程序    String.prototype.replace
=function(e,r)js代码压缩/解压程序{
js代码压缩/解压程序     
this.replace=(typeof r=="function")?_29:_28;
js代码压缩/解压程序     
return this.replace(e,r)
js代码压缩/解压程序    }

js代码压缩/解压程序   }

js代码压缩/解压程序js代码压缩/解压程序   
if(!Function.apply)js代码压缩/解压程序{
js代码压缩/解压程序    
var APPLY="apply-"+Number(new Date);
js代码压缩/解压程序js代码压缩/解压程序    ap
=function(f,o,a)js代码压缩/解压程序{
js代码压缩/解压程序     
var r;
js代码压缩/解压程序     o[APPLY]
=f;
js代码压缩/解压程序js代码压缩/解压程序     
switch(a.length)js代码压缩/解压程序{
js代码压缩/解压程序      
case 0:r=o[APPLY]();break;
js代码压缩/解压程序      
case 1:r=o[APPLY](a[0]);break;
js代码压缩/解压程序      
case 2:r=o[APPLY](a[0],a[1]);break;
js代码压缩/解压程序      
case 3:r=o[APPLY](a[0],a[1],a[2]);break;
js代码压缩/解压程序      
case 4:r=o[APPLY](a[0],a[1],a[2],a[3]);break;
js代码压缩/解压程序      
default:var aa=[],i=a.length-1;do aa[i]="a["+i+"]";while(i--);eval("r=o[APPLY]("+aa+")")
js代码压缩/解压程序     }

js代码压缩/解压程序     
delete o[APPLY];
js代码压缩/解压程序     
return r
js代码压缩/解压程序    }
;
js代码压缩/解压程序js代码压缩/解压程序    
if(typeof ICommon=="function") ICommon.valueOf.prototype.inherit=function()js代码压缩/解压程序{
js代码压缩/解压程序     
return ap(arguments.callee.caller.ancestor,this,arguments)
js代码压缩/解压程序    }

js代码压缩/解压程序   }

js代码压缩/解压程序js代码压缩/解压程序   
if(![].push) Array.prototype.push=function()js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序    
for(var i=0;i<arguments.length;i++)js代码压缩/解压程序{
js代码压缩/解压程序     
this[this.length]=arguments[i]
js代码压缩/解压程序    }

js代码压缩/解压程序    
return this.length
js代码压缩/解压程序   }
;
js代码压缩/解压程序js代码压缩/解压程序   
if(![].pop) Array.prototype.pop=function()js代码压缩/解压程序{
js代码压缩/解压程序    
var i=this[this.length-1];
js代码压缩/解压程序    
this.length--;
js代码压缩/解压程序    
return i
js代码压缩/解压程序   }

js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function pack(_7,_0,_2,_8)js代码压缩/解压程序{
js代码压缩/解压程序   
var I="$1";_7+="\n";
js代码压缩/解压程序   _0
=Math.min(parseInt(_0),95);
js代码压缩/解压程序js代码压缩/解压程序   
function _15(s)js代码压缩/解压程序{
js代码压缩/解压程序    
var i,p;
js代码压缩/解压程序js代码压缩/解压程序    
for(i=0;(p=_6[i]);i++)js代码压缩/解压程序{s=p(s)}
js代码压缩/解压程序    
return s
js代码压缩/解压程序   }
;
js代码压缩/解压程序js代码压缩/解压程序   
var _25=function(p,a,c,k,e,d)js代码压缩/解压程序{
js代码压缩/解压程序   
while(c--if(k[c]) p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
js代码压缩/解压程序   
return p
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
var _26=function()js代码压缩/解压程序{
js代码压缩/解压程序js代码压缩/解压程序   
if(!''.replace(/^/,String))js代码压缩/解压程序{
js代码压缩/解压程序    
while(c--)d[e(c)]=k[c]||e(c);
js代码压缩/解压程序js代码压缩/解压程序    k
=[function(e)js代码压缩/解压程序{return d[e]}];
js代码压缩/解压程序js代码压缩/解压程序    e
=function()js代码压缩/解压程序{return'\\w+'};
js代码压缩/解压程序    c
=1
js代码压缩/解压程序   }

js代码压缩/解压程序}
;
js代码压缩/解压程序
var _6=[];
js代码压缩/解压程序js代码压缩/解压程序
function _4(p)js代码压缩/解压程序{
js代码压缩/解压程序   _6[_6.length]
=p
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _18(s)js代码压缩/解压程序{
js代码压缩/解压程序   
var p=new ParseMaster;
js代码压缩/解压程序   p.escapeChar
="\\";
js代码压缩/解压程序   p.add(
/'[^'\n\r]*'/,I);
js代码压缩/解压程序   p.add(
/"[^"\n\r]*"/,I);
js代码压缩/解压程序   p.add(/\/\/[^\n\r]*[\n\r]/,
" ");
js代码压缩/解压程序   p.add(/\/\*[^*]*\*+([^\/][^*]*\*+)*\//,
" ");
js代码压缩/解压程序   p.add(/\s+(\/[^\/\n\r\*][^\/\n\r]*\/g?i?)/,
"$2");
js代码压缩/解压程序   p.add(/[^\w\x24\/'
"*)\?:]\/[^\/\n\r\*][^\/\n\r]*\/g?i?/,I);
js代码压缩/解压程序   
if(_8)p.add(/;;;[^\n\r]+[\n\r]/);
js代码压缩/解压程序   p.add(
/\(;;\)/,I);
js代码压缩/解压程序   p.add(
/;+\s*([}
;])/,"$2");
js代码压缩/解压程序   s
=p.exec(s);
js代码压缩/解压程序   p.add(
/(\b|\x24)\s+(\b|\x24)/,"$2 $3");
js代码压缩/解压程序   p.add(
/([+\-])\s+([+\-])/,"$2 $3");
js代码压缩/解压程序   p.add(
/\s+/,"");
js代码压缩/解压程序   
return p.exec(s)
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _17(s)js代码压缩/解压程序{
js代码压缩/解压程序   
var p=new ParseMaster;
js代码压缩/解压程序js代码压缩/解压程序   p.add(
/((\x24+)([a-zA-Z_]+))(\d*)/,function(m,o)js代码压缩/解压程序{
js代码压缩/解压程序    
var l=m[o+2].length;
js代码压缩/解压程序    
var s=l-Math.max(l-m[o+3].length,0);
js代码压缩/解压程序    
return m[o+1].substr(s,l)+m[o+4]
js代码压缩/解压程序   }
);
js代码压缩/解压程序   
var r=/\b_[A-Za-z\d]\w*/;
js代码压缩/解压程序   
var k=_13(s,_9(r),_21);
js代码压缩/解压程序   
var e=k.e;
js代码压缩/解压程序js代码压缩/解压程序   p.add(r,
function(m,o)js代码压缩/解压程序{return e[m[o]]});
js代码压缩/解压程序   
return p.exec(s)
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _16(s)js代码压缩/解压程序{
js代码压缩/解压程序   
if(_0>62)s=_20(s);
js代码压缩/解压程序   
var p=new ParseMaster;
js代码压缩/解压程序   
var e=_12(_0);
js代码压缩/解压程序   
var r=(_0>62)?/\w\w+/ :/\w+/;
js代码压缩/解压程序   k
=_13(s,_9(r),e);
js代码压缩/解压程序   
var e=k.e;
js代码压缩/解压程序js代码压缩/解压程序   p.add(r,
function(m,o)js代码压缩/解压程序{return e[m[o]]});
js代码压缩/解压程序   
return s&&_27(p.exec(s),k)
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _13(s,r,e)js代码压缩/解压程序{
js代码压缩/解压程序   
var a=s.match(r);
js代码压缩/解压程序   
var so=[];
js代码压缩/解压程序js代码压缩/解压程序   
var en=js代码压缩/解压程序{};
js代码压缩/解压程序js代码压缩/解压程序   
var pr=js代码压缩/解压程序{};
js代码压缩/解压程序js代码压缩/解压程序   
if(a)js代码压缩/解压程序{
js代码压缩/解压程序    
var u=[];
js代码压缩/解压程序js代码压缩/解压程序    
var p=js代码压缩/解压程序{};
js代码压缩/解压程序js代码压缩/解压程序    
var v=js代码压缩/解压程序{};
js代码压缩/解压程序js代码压缩/解压程序    
var c=js代码压缩/解压程序{};
js代码压缩/解压程序    
var i=a.length,j=0,w;
js代码压缩/解压程序js代码压缩/解压程序    
dojs代码压缩/解压程序{
js代码压缩/解压程序     w
="$"+a[--i];
js代码压缩/解压程序js代码压缩/解压程序     
if(!c[w])js代码压缩/解压程序{
js代码压缩/解压程序      c[w]
=0;
js代码压缩/解压程序      u[j]
=w;
js代码压缩/解压程序      p[
"$"+(v[j]=e(j))]=j++
js代码压缩/解压程序     }

js代码压缩/解压程序     c[w]
++
js代码压缩/解压程序    }

js代码压缩/解压程序    
while(i);
js代码压缩/解压程序    i
=u.length;
js代码压缩/解压程序js代码压缩/解压程序    
dojs代码压缩/解压程序{
js代码压缩/解压程序     w
=u[--i];
js代码压缩/解压程序js代码压缩/解压程序     
if(p[w]!=null)js代码压缩/解压程序{
js代码压缩/解压程序      so[p[w]]
=w.slice(1);
js代码压缩/解压程序      pr[p[w]]
=true;
js代码压缩/解压程序      c[w]
=0
js代码压缩/解压程序     }

js代码压缩/解压程序    }

js代码压缩/解压程序    
while(i);
js代码压缩/解压程序js代码压缩/解压程序    u.sort(
function(m1,m2)js代码压缩/解压程序{return c[m2]-c[m1]});
js代码压缩/解压程序    j
=0;
js代码压缩/解压程序js代码压缩/解压程序    
dojs代码压缩/解压程序{
js代码压缩/解压程序     
if(so[i]==null) so[i]=u[j++].slice(1);
js代码压缩/解压程序     en[so[i]]
=v[i]
js代码压缩/解压程序    }

js代码压缩/解压程序    
while(++i<u.length)
js代码压缩/解压程序   }

js代码压缩/解压程序js代码压缩/解压程序   
returnjs代码压缩/解压程序{s:so,e:en,p:pr}
js代码压缩/解压程序}
;
js代码压缩/解压程序js代码压缩/解压程序
function _27(p,k)js代码压缩/解压程序{
js代码压缩/解压程序   
var E=_10("e\\(c\\)","g");
js代码压缩/解压程序   p
="'"+_5(p)+"'";
js代码压缩/解压程序   
var a=Math.min(k.s.length,_0)||1;
js代码压缩/解压程序   
var c=k.s.length;
js代码压缩/解压程序   
for(var i in k.p) k.s[i]="";
js代码压缩/解压程序   k
="'"+k.s.join("|")+"'.split('|')";
js代码压缩/解压程序   
var e=_0>62?_11:_12(a);
js代码压缩/解压程序   e
=String(e).replace(/_0/g,"a").replace(/arguments\.callee/g,"e");
js代码压缩/解压程序   
var i="c"+(a>10?".toString(a)":"");
js代码压缩/解压程序js代码压缩/解压程序   
if(_2)js代码压缩/解压程序{
js代码压缩/解压程序    
var d=_19(_26);
js代码压缩/解压程序    
if(_0>62)d=d.replace(/\\\\w/g,"[\\xa1-\\xff]");
js代码压缩/解压程序    
else if(a<36)d=d.replace(E,i);
js代码压缩/解压程序    
if(!c)d=d.replace(_10("(c)\\s*=\\s*1"),"$1=0")
js代码压缩/解压程序   }

js代码压缩/解压程序   
var u=String(_25);
js代码压缩/解压程序js代码压缩/解压程序   
if(_2)js代码压缩/解压程序{ u=u.replace(/\js代码压缩/解压程序{/,"{"+d+";") }
js代码压缩/解压程序   u
=u.replace(/"/g,"'");
js代码压缩/解压程序   if(_0>62){ u=u.replace(/'\\\\b'\s*\+|\+\s*'\\\\b'/g,
"") }
js代码压缩/解压程序js代码压缩/解压程序   if(a>36||_0>62||_2){ u=u.replace(/\{/,
"js代码压缩/解压程序{e="+e+";") }else{ u=u.replace(E,i) }
js代码压缩/解压程序   u=pack(u,0,false,true);
js代码压缩/解压程序   var p=[p,a,c,k];
js代码压缩/解压程序js代码压缩/解压程序   if(_2){ p=p.concat(0,
"js代码压缩/解压程序{}") }
js代码压缩/解压程序   return
"eval("+u+"("+p+"))\n"
js代码压缩/解压程序};
js代码压缩/解压程序function _12(a){return a>10?a>36?a>62?_11:_22:_23:_24};
js代码压缩/解压程序var _24=function(c){ return c };
js代码压缩/解压程序var _23=function(c){ return c.toString(36) };
js代码压缩/解压程序var _22=function(c){ return(c<_0?'':arguments.callee(parseInt(c/_0)))+((c=c%_0)>35?String.fromCharCode(c+29):c.toString(36)) };
js代码压缩/解压程序var _11=function(c){ return(c<_0?'':arguments.callee(c/_0))+String.fromCharCode(c%_0+161) };
js代码压缩/解压程序var _21=function(c){ return
"_"+c };
js代码压缩/解压程序function _5(s){ return s.replace(/([\\'])/g,
"\\$1") };
js代码压缩/解压程序function _20(s){ return s.replace(/[\xa1-\xff]/g,function(m){ return
"\\x"+m.charCodeAt(0).toString(16) }) };
js代码压缩/解压程序function _10(s,f){ return new RegExp(s.replace(/\$/g,
"\\$"),f) };
js代码压缩/解压程序js代码压缩/解压程序function _19(f){ with(String(f))return slice(indexOf(
"js代码压缩/解压程序{")+1,lastIndexOf("}")) };
js代码压缩/解压程序function _9(r){ return new RegExp(String(r).slice(1,-1),
"g") };
js代码压缩/解压程序_4(_18);
js代码压缩/解压程序if(_8)_4(_17);
js代码压缩/解压程序if(_0)_4(_16);
js代码压缩/解压程序return _15(_7)
js代码压缩/解压程序};
js代码压缩/解压程序
js代码压缩/解压程序
js代码压缩/解压程序var input,output;
js代码压缩/解压程序onload=function(){
js代码压缩/解压程序if(!document.getElementById||''.replace(/^/,String))return;
js代码压缩/解压程序input=document.getElementById(
"input");//内容 文本区域
js代码压缩/解压程序var message=document.getElementById(
"message");//消息 
js代码压缩/解压程序var encoding=document.getElementById(
"ascii-encoding");//编码方式 选择列表 值有0、10、62、95
js代码压缩/解压程序var fastDecode=document.getElementById(
"fast-decode");//快速解码 选择框
js代码压缩/解压程序var specialChars=document.getElementById(
"special-chars");//特殊字符 选择框
js代码压缩/解压程序function packScript(){//执行压缩
js代码压缩/解压程序   try{
js代码压缩/解压程序    if(input.value){
js代码压缩/解压程序     input.value=pack(input.value,encoding.value,fastDecode.checked,specialChars.checked);
js代码压缩/解压程序        //调用编码函数    输入代码,   编码方式,       是否快速解码,        是否特殊字符
js代码压缩/解压程序    }
js代码压缩/解压程序   }catch(e){
js代码压缩/解压程序    reportError(
"error packing script",e.message)
js代码压缩/解压程序   }
js代码压缩/解压程序};
js代码压缩/解压程序function decodeScript(){//执行解码
js代码压缩/解压程序   try{
js代码压缩/解压程序js代码压缩/解压程序    if(input.value.substring(0,27)==
"eval(function(p,a,c,k,e,d)js代码压缩/解压程序{"){
js代码压缩/解压程序     eval(
"input.value=String"+input.value.slice(4));
js代码压缩/解压程序    }
js代码压缩/解压程序    else reportError(
"代码解码取消","您的代码没有用此方法压缩!");
js代码压缩/解压程序   }catch(e){
js代码压缩/解压程序    reportError(
"代码解码错误",e.message)
js代码压缩/解压程序   }
js代码压缩/解压程序};
js代码压缩/解压程序function enableFastDecode(){
js代码压缩/解压程序   fastDecode.disabled=Boolean(encoding.value==0);
js代码压缩/解压程序   fastDecode.parentNode.className=(encoding.value==0)?
"disabled":""
js代码压缩/解压程序};
js代码压缩/解压程序function reportError(m,e){
js代码压缩/解压程序   message.innerHTML=m+(e?
""+e:"");
js代码压缩/解压程序   message.className=
"error"
js代码压缩/解压程序};
js代码压缩/解压程序encoding.onclick=enableFastDecode;
js代码压缩/解压程序var buttons=document.getElementsByTagName(
"button");
js代码压缩/解压程序var button,i;
js代码压缩/解压程序for(i=0;(button=buttons[i]);i++){
js代码压缩/解压程序   var handler=eval(button.id);
js代码压缩/解压程序   button.onclick=handler;
js代码压缩/解压程序   handler.button=button
js代码压缩/解压程序}
js代码压缩/解压程序};
js代码压缩/解压程序</script>
js代码压缩/解压程序</head>
js代码压缩/解压程序
js代码压缩/解压程序<body >
js代码压缩/解压程序<form id=
"packer" action="" method="post">
js代码压缩/解压程序     <label for=
"input">Paste your code:</label>
js代码压缩/解压程序   <br />
js代码压缩/解压程序    <textarea id=
"input" name="input" rows="10" cols="79"></textarea>
js代码压缩/解压程序<div class=
"r ar">
js代码压缩/解压程序    <p id=
"controls">
js代码压缩/解压程序     <label for=
"ascii-encoding">Encoding:</label>
js代码压缩/解压程序     <select id=
"ascii-encoding" name="ascii_encoding">
js代码压缩/解压程序   <option value=
"0">None</option>
js代码压缩/解压程序   <option value=
"10">Numeric</option>
js代码压缩/解压程序   <option value=
"62" selected="selected">Normal</option>
js代码压缩/解压程序   <option value=
"95">High ASCII</option>
js代码压缩/解压程序     </select><br />
js代码压缩/解压程序     <label for=
"fast-decode">Fast Decode:
js代码压缩/解压程序   <input type=
"checkbox" id="fast-decode" name="fast_decode" value="1" checked="checked"/></label><br />
js代码压缩/解压程序     <label for=
"special-chars">Special Characters:
js代码压缩/解压程序   <input type=
"checkbox" id="special-chars" name="special_chars" value="1"/></label>
js代码压缩/解压程序</p>
js代码压缩/解压程序    </div> 
js代码压缩/解压程序<button type=
"button" id="packScript">Compress</button>
js代码压缩/解压程序<button type=
"button" id="decodeScript" >Decode</button>
js代码压缩/解压程序<p id=
"message"></p>
js代码压缩/解压程序</form>
js代码压缩/解压程序</body>
js代码压缩/解压程序</html>
js代码压缩/解压程序


界面:


输入js代码:

js代码压缩/解压程序


Compress之后的显示效果:
js代码压缩/解压程序

PS:这段代码是我很久前在网上找的,现在可能有更新的版本或者压缩形式,如果有更好的,欢迎交流!

 

QQ:498977166

http://szw.cnblogs.com/
研究、探讨.NET开发
转载请注明出处和作者,谢谢!

 

js代码压缩/解压程序
Senparc官方教程《微信开发深度解析:微信公众号、小程序高效开发秘籍》,耗时2年精心打造的微信开发权威教程,点击这里,购买正版

 

上一篇:为 MVC 和 Web Form 正名的【第二份】“大字报”


下一篇:为解决ASP.NET MVC(CTP)中URL“页面请求”和“单纯逻辑处理请求”混淆问题,提供一条思路