2012-05-30 3 views
1

Как разработчик JS, я очень часто использую инструмент Fiddler. Я также использую свой формат addon JavaScript Formatter для удобного форматирования мини-файлов для целей отладки.Есть ли способ расширения форматирования Fiddler JS работать условно?

Однако проблема заключается в том, что форматировщик JS вообще не настраивается и работает на базе «все или ничего».

Проблема:

В моей компании, мы иногда связывайте много (не JS, но компилируется в JS) файлы вместе, служат как JS, а затем полагаться на этот формат файла для разбора их и правильно загрузите. Это может показаться странным, но нужно избегать наличия десятков микрофайлов и иметь один пакет со всеми из них.

Так в основном, файл выглядит следующим образом:

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

и так далее.

Вопрос:

Есть ли способ сказать Скрипач не приукрасить что файлы? У нас есть //MAGICCOMMENT в первой строке, что одинаково для всех многостраничных файлов, которые, возможно, могут быть использованы для его обнаружения, но я не знаю, как и как я могу использовать его.

PS: Я думаю, мы не можем изменить MIME-тип обслуживаемых файлов.

Edit:

Я знаю, что "Сделать Довольно JavaScript" вариант в Rules меню, который добавляется после установки плагина JS Formatter. Я хочу, чтобы эта опция работала условно (но: во время отправки данных в браузер, поэтому я могу установить точки останова в браузере на префессифицированном источнике JS для всех файлов, которые я хочу убрать, т.е. файлы, отличные от многочастных).

ответ

1

На данный момент вы можете просто отключить пункт «Сделать JavaScript Pretty» в меню правил Fiddler. Когда вы хотите украсить отдельный файл JavaScript, вы можете сделать это, щелкнув правой кнопкой мыши на сеансе в списке веб-сеансов и выбрав «Сделать 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, но это не должно быть большой проблемой. BTW Я видел, что существует метод 'oSession.GetResponseBodyAsString()', но он возвращает пустую строку - тело ответа еще не доступно в 'OnPeekAtResponseHeaders', правильно? Нет способа обойти его и установить «X-FIDDLER-JS-FORMAT» после предварительного чтения ответа? –

+0

Правильно, вы не можете вызвать GetResponseBodyAsString до события OnBeforeResponse. Обычно вы можете установить флаг во время события Peek, потому что это заголовок Content-Type. – EricLaw

Смежные вопросы