在IE6中打包/缩小的javascript失败 - 如何调试?

时间:2009-01-07 03:27:02

标签: javascript debugging internet-explorer-6 minify

我有很多文件可以组合并打包生成一个缩小的JS文件。问题是,当我缩小文件时(使用packer),IE6提供了一个特有的有用错误消息。

Line: 12      // of course, line 12 is an empty line
Char: 1
Error: Expected ')'
Code: 0

问题是:它在IE7,Firefox和Chrome中运行良好只会出现IE6的问题。

解压缩,我有近200kb的脚本分布在8个文件中。我怎么解决这个问题?

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

与CMS一样,YUI compressor是压缩和混淆代码的绝佳工具,试试吧。

我在我的javascript文件中使用以下代码。我正在运行OSX,但该命令在Linux上可能是相同的,也可能在Windows上(尽管我从未尝试过)。

java -jar /path/to/yuicompressor-2.4.jar --charset utf8 -o ~/path/to/scriptname.min.js ~/path/to/scriptname.js 

〜/ path / to / 是javascript文件所在位置的路径, scriptname.min.js 是最小化/模糊处理的最终结果的名称, scriptname.js 是原始文件。

我假设你不能只是'忘记'IE6?我新年的一个愿望是,互联网上最后23%的IE6用户最终升级到更合适/最新的浏览器: - )。

希望这有帮助!

-Dave

答案 2 :(得分:1)

这是ie6的一个非常常见的问题, 你必须注意代码中的闭包,

条件语句必须带有{ - } ...并且功能也一样。

if(){
}

function(){
};
你必须把;在每个语句的末尾,如果没有,这些行将合并为浏览器无法理解的内容。

我使用jslint.com进行javascript调试。 在错误列表中查找“缺少分号”。

答案 3 :(得分:1)

您是否已经确认未缩小的代码可以在IE6中成功运行?如果是这样,因为这是语法错误而不是运行时错误,我将采取的下一步是开始减半javascript,缩小它,并查看问题何时停止报告。然后从那里继续二进制搜索。

答案 4 :(得分:0)

从记忆中,我认为我最终解决这个问题的方式,以及我现在通常使用缩小代码解决问题的方式,就是通过JSLint运行它。它非凡的严格性将会解决不会导致非缩小代码出现问题的问题(例如缺少分号)。你将不得不跋涉很多非真正错误的消息,但问题将出现在那里!