Minifying Prototype引入了错误?

时间:2010-08-26 17:25:16

标签: javascript jquery prototypejs

我已经使用了一些过去曾为我工作过的网络缩放器。我刚刚尝试缩小原型版本1.6.0.1 - 我已将original放在此处,minified放在此处。

js文件缩小后我从firebug得到的错误是:

missing } after property list
ept': 'text/javascript,text/html,appli...estHeaders=='object'){var extras=this.

我不明白为什么这没效果。我已经缩小了JQuery并且它有效。这是我第一次尝试缩小原型,我的意思是它应该正常工作,它只是删除空格和注释!

非常感谢所有人

2 个答案:

答案 0 :(得分:4)

您使用的缩小器会将/**/之间的所有内容视为注释,但会查看第1244行至第1254行(来自original script):

  'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
};

if (this.method == 'post') {
  headers['Content-type'] = this.options.contentType +
    (this.options.encoding ? '; charset=' + this.options.encoding : '');

  /* Force "Connection: close" for older Mozilla browsers to work
   * around a bug where XMLHttpRequest sends an incorrect
   * Content-length header. See Mozilla Bugzilla #246651.
   */
  if (this.transport.overrideMimeType &&

第一个/*在引号内,它应该不管它,您应该更改代码中*旁边的ept': 'text/javascript,text/html,appli并粘贴丢失的文本,而不是:

'Accept': 'text/javascript,text/html,application/xml,text/xml,*if(this.transport.overrideMimeType&&
你应该

'Accept': 'text/javascript,text/html,application/xml,text/xml,*/*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&

考虑将您正在使用的缩小器更改为更少的错误。


我用yuicompressor缩小了你的脚本,生成的文件比你的文件小3K,你使用的minifier在可以省略的地方留空格。在这里查看:Prototype JavaScript framework, version 1.6.0.1, minified using yuicompressor

答案 1 :(得分:0)

我将minify用于我的一个项目,并将原型,scriptaculous,jQuery和一些插件组合到一个缩小的文件中。它没有任何错误。