2009-01-07 63 views
0

我有一些文件,我结合起来并打包生成一个单一的,缩小的JS文件。问题是,当我缩小文件(使用packer)时,IE6提供了其中一个特征有用的错误消息。在IE6中打包/缩小javascript失败 - 如何调试?

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

的事情是:它在IE7,Firefox和Chrome正常工作的问题只出现了IE6。

解压,我有几乎200kb的脚本通过8个文件传播。我如何解决这个问题?

回答

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 

〜/路径/到/是路径到哪里你的JavaScript文件,scriptname.min.js是最小化/模糊的最终结果的名称,scriptname.js是原始文件。

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

希望这会有所帮助!

-Dave

1

这是IE6, 一个非常普遍的问题,你必须要注意在代码中关闭,

的条件语句必须与{ - } ...和功能太。

if(){ 
} 

function(){ 
}; 

你必须把;在每条语句的末尾,如果不是,这些行将合并成浏览器无法理解的内容。

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

1

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

0

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