https://github.com/yui/yuglifyからYahooJavaScriptUglify(yuglify)をダウンロードしました。これを、Apacheサーバーでホストされている一部のPHPプロジェクトのJSおよびCSS圧縮に使用する予定です。これらの元の内容でファイルを縮小しようとしました:
var _cmFrameList = new Array (); // a pool of reusable iframes
var _cmFrameListSize = 0; // keep track of the actual size
var _cmFrameIDCount = 0; // keep track of the frame id
var _cmFrameMasking = true; // use the frame masking
// disable iframe masking for IE7
/*@cc_on
@if (@_jscript_version >= 5.6)
if (_cmFrameMasking)
{
var v = navigator.appVersion;
var i = v.indexOf ("MSIE ");
if (i >= 0)
{
if (parseInt (navigator.appVersion.substring (i + 5)) >= 7)
_cmFrameMasking = false;
}
}
@end
@*/
var _cmClicked = false; // for onClick
しかし、代わりにこれを手に入れました:
var _cmFrameList=new Array,_cmFrameListSize=0,_cmFrameIDCount=0,_cmFrameMasking=!0,_cmClicked=!1
元のファイルの内容には、古いIEブラウザーで動作するために必要な条件付きコンパイルコードがいくつかあります(@ cc_on、@ if、@ endなどで始まるコメント行)。yuglifyはこれらの条件付きコンパイル行を単純なコメントとして扱っているようであり、そのため、すべてを削除しています。
好奇心から、この同じファイル( https://github.com/yui/yuicompressor/downloads )でもyuicompressorをテストしましたが、すべての条件付きコンパイルコードはそのままのようです。改行でさえまだそこにあります:
var _cmFrameList=new Array();var _cmFrameListSize=0;var _cmFrameIDCount=0;var _cmFrameMasking=true;
/*@cc_on
@if (@_jscript_version >= 5.6)
if (_cmFrameMasking)
{
var v = navigator.appVersion;
var i = v.indexOf ("MSIE ");
if (i >= 0)
{
if (parseInt (navigator.appVersion.substring (i + 5)) >= 7)
_cmFrameMasking = false;
}
}
@end
@*/
var _cmClicked=false;
古いIEブラウザーは、これらの条件付きコンパイル行がないと文字化けします。yuglifyを削除せずに使用することはできますか?