2012-06-04 25 views
-2

我在一个Windows操作系统上甩了100个Javascript文件,并遇到了几乎一半的问题。事实证明,minfiying压缩器不能正确缩小js文件,其中包含一个点的功能。对于YUI压缩器,当这种情况发生时,它将删除文件的内容,而对于Ajaxminifier,它只是忽略该点并在其之前使用该函数名称。所讨论的功能的如何缩小包含用'。'分隔的函数名称的JavaScript文件?

实施例:

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 ..我知道,该网络应用程序只能在IE上运行,这可能是这个原因。在Firefox等,它可能并非如此。我期待得到这个改变

+8

'function window.onload(){}'是无效的javascript。你的一半项目是死代码? – Esailija

+3

'window.onload = function(){}'是有效的JavaScript。如果重写你的代码,使其不被破坏是“不是一个选项”,那么你就没有选择。 – meagar

+1

为什么写句法正确的代码“不是一个选项”? –

回答

7

这是打破,因为你想缩小无效的JavaScript。函数中不能有点。

我认为你正在尝试命名空间。如果你是这样,你最好做类似:

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

myVar.foo(); 
相关问题