[整理]javascript压缩、格式化
1.使用packer来压缩JS文件
packer工具在线版:http://dean.edwards.name/packer/
通过packer对js打包压缩的同时,执行Base62 encode编码后,代码变得难以阅读。
如:
1 |
eval( function (p,a,c,k,e,r){e=String; if (! ‘‘ .replace(/^/,String)){ while (c--)r[c]=k[c]||c;k=[ function (e){ return
r[e]}];e= function (){ return ‘\\w+‘ };c=1}; while (c--) if (k[c])p=p.replace( new
RegExp( ‘\\b‘ +e(c)+ ‘\\b‘ , ‘g‘ ),k[c]); return
p}( ‘0(1);‘ ,2,2, ‘alert|123‘ .split( ‘|‘ ),0,{})) |
2.还原packer压缩的JS源码
有时候,我们需要把packer压缩后的js还原成原始的可阅读的js代码,方法有很多种,毕竟,压缩后的js最终还是要在浏览器上执行的。
(1)使用浏览器内置的开发工具
http://www.cnblogs.com/52cik/p/js-unpacker.html,已说明使用方法。
(2)直接修改已打包压缩的js源文件,返回JS源文件
1
2
3
4
5
6
7
8
9
10 |
eval( function
(p, a, c, k, e, d) { e = function
(c) { return
(c < a ? ‘‘
: e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if
(! ‘‘ .replace(/^/, String)) { while
(c--) d[e(c)] = k[c] || e(c); k = [ function
(e) { return
d[e] } ]; e = function
() { return
‘\\w+‘ }; c = 1 }; while
(c--) if
(k[c]) p = p.replace( new
RegExp( ‘\\b‘
+ e(c) + ‘\\b‘ , ‘g‘ ), k[c]); /*return p*/ /*begin 添加如下代码,直接显示p*/ document.getElementById( ‘textareaID‘ ).innerText = p; /*end*/ } ( ‘1(0);‘ , 62, 2, ‘123|alert‘ .split( ‘|‘ ), 0, {})) |
(3)通过Eval执行压缩的代码,得到JS源码
有一点必须知道,压缩后的js最终还是要在浏览器上执行的,浏览器肯定认识的,那么我们可以借助eval来获取JS源码。
1
2
3
4
5 |
function
decode() { var
code = document.getElementById( ‘code‘ ).value; code = code.replace(/^eval/, ‘‘ ); document.getElementById( ‘code‘ ).value = eval(code); } |
3.格式化JS
获得JS源码后,需要格式化,方便阅读。
http://www.css88.com/tool/js_beautify/
另:本文的附件中有相关js工具。
4.其他在线工具:
http://tool.chinaz.com/js.aspx(JS混淆加密压缩)
5.附件(JS压缩&格式化工具)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。