2012-05-30 14 views
1

作爲一名JS開發者,我經常使用Fiddler工具。我還使用它的addon JavaScript格式化器來精確地格式化縮小的文件以進行調試。Fiddler JS格式程序擴展有條件工作嗎?

但問題是,JS格式化程序似乎根本不可配置,並且工作在「全有或全無」的基礎上。

問題:

在我的公司,我們有時會捆綁了很多(不是JS,但編譯到JS)文件一起,成爲它作爲JS,然後,依賴於文件格式解析它們並正確加載。這可能聽起來很奇怪,但它是爲了避免擁有數十個微文件,並且只有一個包含所有這些文件。

因此,基本上,這個文件看起來像:

//MAGICCOMMENT 
//FILEID 
markup 
markup 
... 
markup 
//FILEID 
markup 
markup 
... 
markup 

等。

問:

有沒有辦法告訴提琴手不美化的文件?我們在第一行有一個//MAGICCOMMENT,這對所有的多部分文件都是一樣的,可以用它來檢測它,但我不知道是否以及如何利用它。

PS:我想我們不能改變服務文件的MIME類型。

編輯:

我知道「讓漂亮的JavaScript」選項Rules菜單,這是安裝JS格式化插件之後添加。我想使這個選項有條件地工作(但是:在發送數據到瀏覽器時的,所以我可以在瀏覽器中對美化的JS源文件中的斷點,對於我想要進行優化的所有文件,即除多部分以外的文件)。

回答

1

現在,您可以禁用Fiddler Rules菜單上的「Make JavaScript Pretty」項目。當您想要美化單個JavaScript文件時,可以通過右鍵單擊Web會話列表中的會話並直接在會話上選擇Make JavaScript Pretty來實現。

或者,您可以禁用全局選項並讓FiddlerScript有條件地格式化JS文件。例如。內部規則>自定義規則> OnPeekAtResponseHeaders()

if (oSession.oResponse["Content-Type"].ToLower().Contains("script")) { 
    if (!oSession.uriContains("Combinedfilenameorwhatnot")) { 
    // Note this flag name is soon changing to X-Format-JS 
    oSession["X-FIDDLER-JS-FORMAT"] = "yes"; 
    } 
} 
+0

基於URL的格式化很好!謝謝!小問題是我必須調整列表並在CustomRules.js中添加文件,但它不應該是一個大問題。 順便說一句我見過存在一個方法'oSession.GetResponseBodyAsString()',但它返回空字符串 - 響應正文它不可用在OnPeekAtResponseHeaders',對不對?沒有辦法規避它,並在預讀完響應後設置'X-FIDDLER-JS-FORMAT'? –

+0

正確,直到OnBeforeResponse事件才能調用GetResponseBodyAsString。您通常可以在Peek事件期間設置該標誌,因爲這是Content-Type標頭所在的位置。 – EricLaw