WEB开发人员网络
→
WEB前台
→
JavaScript
→
在线工具
JS在线压缩
提供者: 发布时间:2008-2-25 浏览:[2691]
搜索更多相关信息
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript在线压缩</title> <meta http-equiv="content-type" content="text/html"; charset="gb2312" /> </head> <body> <script type="text/javascript"> function getValue(i){return document.getElementById(i);}function compress(){getValue("fOutput").value=jsmin("",getValue("fInput").value,getValue("fCompression").value);getValue("fOldSize").innerHTML=jsmin.oldSize+" bytes";getValue("fNewSize").innerHTML=jsmin.newSize+" bytes";getValue("fRatio").innerHTML=(Math.round(jsmin.newSize/jsmin.oldSize*1000)/10)+"%";}String.prototype.has=function(c){return this.indexOf(c)>-1;};function jsmin(comment,input,level){if(input===undefined){input=comment;comment='';level=2;}else if(level===undefined||level<1||level>3){level=2;}if(comment.length>0){comment+='\n';}var a='',b='',EOF=-1,LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',DIGITS='0123456789',ALNUM=LETTERS+DIGITS+'_$\\',theLookahead=EOF;function isAlphanum(c){return c!=EOF&&(ALNUM.has(c)||c.charCodeAt(0)>126);}function get(){var c=theLookahead;if(get.i==get.l){return EOF;}theLookahead=EOF;if(c==EOF){c=input.charAt(get.i);++get.i;}if(c>=' '||c=='\n'){return c;}if(c=='\r'){return'\n';}return' ';}get.i=0;get.l=input.length;function peek(){theLookahead=get();return theLookahead;}function next(){var c=get();if(c=='/'){switch(peek()){case'/':for(;;){c=get();if(c<='\n'){return c;}}break;case'*':get();for(;;){switch(get()){case'*':if(peek()=='/'){get();return' ';}break;case EOF:throw'Error: Unterminated comment.';}}break;default:return c;}}return c;}function action(d){var r=[];if(d==1){r.push(a);}if(d<3){a=b;if(a=='\''||a=='"'){for(;;){r.push(a);a=get();if(a==b){break;}if(a<='\n'){throw'Error: unterminated string literal: '+a;}if(a=='\\'){r.push(a);a=get();}}}}b=next();if(b=='/'&&'(,=:[!&|'.has(a)){r.push(a);r.push(b);for(;;){a=get();if(a=='/'){break;}else if(a=='\\'){r.push(a);a=get();}else if(a<='\n'){throw'Error: unterminated Regular Expression literal';}r.push(a);}b=next();}return r.join('');}function m(){var r=[];a='\n';r.push(action(3));while(a!=EOF){switch(a){case' ':if(isAlphanum(b)){r.push(action(1));}else{r.push(action(2));}break;case'\n':switch(b){case'{':case'[':case'(':case'+':case'-':r.push(action(1));break;case' ':r.push(action(3));break;default:if(isAlphanum(b)){r.push(action(1));}else{if(level==1&&b!='\n'){r.push(action(1));}else{r.push(action(2));}}}break;default:switch(b){case' ':if(isAlphanum(a)){r.push(action(1));break;}r.push(action(3));break;case'\n':if(level==1&&a!='\n'){r.push(action(1));}else{switch(a){case'}':case']':case')':case'+':case'-':case'"':case'\'':if(level==3){r.push(action(3));}else{r.push(action(1));}break;default:if(isAlphanum(a)){r.push(action(1));}else{r.push(action(3));}}}break;default:r.push(action(1));break;}}}return r.join('');}jsmin.oldSize=input.length;ret=m(input);jsmin.newSize=ret.length;return comment+ret;} </script> <h2>压缩级别</h2> <select id="fCompression"> <option value="1">一般</option><br /> <option value="2">较高</option><br /> <option value="3" selected="selected">高级</option><br /> </select> <p></p> <h2>输入要压缩的JS文件</h2> <p> <textarea id="fInput" name="fInput" rows="8" cols="75"></textarea><br /> </p> <input type="submit" name="fSubmit" value="Compress > >" onclick="compress();"> </p> <h1>- - - - - -</h1> <h2>输出压缩后的JS文件</h2> <p> <textarea id="fOutput" name="fOutput" rows="8" cols="75" readonly="1"></textarea><br /> <br /> <b>压缩前大小:</b> <span id="fOldSize">N/A</span> <b>压缩后大小:</b> <span id="fNewSize">N/A</span> <b>压缩率:</b> <span id="fRatio">N/A</span></p> <p></p> </body> </html>
提示:您可以先修改部分代码再运行
下一篇:
配色表(点击直接复制)
上一篇:
游戏人JavaScript代码加密器