我有很多文件可以组合并打包生成一个缩小的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个文件中。我怎么解决这个问题?
答案 0 :(得分:1)
微软有办法实现这一目标:
http://blogs.msdn.com/ie/archive/2004/10/26/247912.aspx
http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html
答案 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运行它。它非凡的严格性将会解决不会导致非缩小代码出现问题的问题(例如缺少分号)。你将不得不跋涉很多非真正错误的消息,但问题将出现在那里!