Ответ 1
Открыть скрипт → Правила меню → Настроить правила (или нажать Ctrl + R)
Откроется файл CustomRule.js. Прокрутите вниз, пока не найдете строку
static function OnBeforeResponse(oSession: Session)
Вот где идет ваш код. Здесь вы можете изменить ответ сервера, прежде чем браузер увидит его.
В следующем примере кода показано, как включить пользовательский кусок кода jQuery, который заменяет ссылку Unanswered в горизонтальном меню со ссылкой, которая служит сокращенным сокращением на Неотвеченные вопросы jQuery
Сначала я покажу вам код jQuery, который я хочу включить
<script type='text/javascript'>
$(function() {
var newLink = '<a href="/unanswered/tagged/jquery">Unanswered jQuery</a>';
$('div#hmenus div.nav:first ul li:last a').replaceWith(newLink);
});
</script>
Теперь код скрипта (на основе кода, найденного в CustomRules.js и образцах кода из FiddlerScript CookBook)
//is it a html-response and is it from stackoverflow.com
if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "html") &&
oSession.HostnameIs("stackoverflow.com")) {
// Remove any compression or chunking
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Match the jQuery script tag
var oRegEx = /(<script[^>]*jquery.min.js"><\/script>)/gi;
// replace the script tag withitself (no change) + append custom script tag
oBody = oBody.replace(oRegEx, "$1<script type='text/javascript'>$(function() {$('div#hmenus div.nav:first ul li:last a').replaceWith('<a href=\"/unanswered/tagged/jquery\">Unanswered jQuery</a>');})</script>");
// Set the response body to the changed body string
oSession.utilSetResponseBody(oBody);
}
Результат выглядит следующим образом
Измененный stackoverflow.com http://img269.imageshack.us/img269/570/clipboard01ym.jpg
Думаю, теперь вы сможете взломать кусочек кода, который соответствует вашей проблеме.
Пример
// Match the head end
var oRegEx = /(<\/head>)/gi;
// replace with new script
oBody = oBody.replace(oRegEx, "<script type='text/javascript' src='http://url/myscript.js'></script>$1");