如何调试混淆的JavaScript?

13

我需要调试像这个例子那样的混淆JavaScript代码:

__d("DataStore",[],function(a,b,c,d,e,f){var g={},h=1;function i(l){if(typeof l=='string'){return 'str_'+l;}else return 'elem_'+(l.__FB_TOKEN||(l.__FB_TOKEN=[h++]))........

嵌入在MSIE、Opera和Chrome中的JavaScript调试器不理解JS使用分号而不是CRLF作为换行符,因此无法调试这样的脚本,因为整个函数位于一行上,调试器总是突出显示该行,不允许我看到实际执行的代码部分。

有没有办法调试包含非常长的代码行且不使用CRLF分隔代码行的JavaScript文件?

4个回答

36
Chrome开发工具的“脚本/源代码”窗格有一个“漂亮打印”模式(在底部工具栏中查找{}按钮)。

返回前端,完全忘记了这个小图标。谢谢 - Andrew

3

1
Google Chrome有一个“漂亮打印”功能,可以重新缩进代码。
我通常不使用它,所以我不知道它存在了多久,但它在Chrome 21 dev中存在。

1

这个问题没有单一的解决方案。你可以做的第一件事是将javascript代码复制/粘贴到http://jsbeautifier.org/中,以获得更易读的内容。


不是说你的 Chrome 解决方案更好,只是如果它有效,你可以修改 script 标签以加载经过美化的版本,然后进行调试。 - Jerome WAGNER

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接