-2

我在 Windows 操作系统上压缩了 100 个 Javascript 文件,其中几乎有一半遇到了问题。事实证明,minfiying 压缩器无法正确压缩具有点分隔功能的 js 文件。对于 YUI 压缩器,它会在这种情况发生时删除文件的内容,而对于 Ajaxminifier,它只是忽略点并取其前面的函数名。

有问题的函数示例:

function window.onload() {}

Error Message: :missing ( before function parameters

使用 YUI 压缩器作为 MSBuild 任务和命令行都产生相同的结果。

命令行示例:

java -jar yuicompressor.jar --type js --charset utf-8 -o D:\foo.js D:\foo-min.js

使用 Ajax Minifier 示例:

命令行:

AjaxMin.exe -o D:\foo.js D:\foo-min.js

但是,一种解决方案是重写函数,并且缩小过程效果很好示例:

window.onload = function() {}

但这不是我们现在的选择。有谁知道这个问题并能够提供解决方案?


谢谢。是的,我确实继承了这些文件,但我还不确定为什么要这样写。我不相信有任何处理器可以将其转换为正确的 JS。我知道 Web 应用程序只能在 IE 上运行,这可能是它起作用的原因。在 Firefox 等上,情况可能并非如此。我希望得到这个改变

4

1 回答 1

7

这是因为你试图缩小无效的 javascript。函数中不能有点。

我认为您正在尝试命名空间。如果你是,你最好做类似的事情:

var myVar = {
    foo: function () { /* do something */ }
}

myVar.foo();
于 2012-06-04T18:25:35.073 回答