Подтвердить что ты не робот

Внедрение JavaScript в элемент заголовка сайта с использованием Fiddler

Я думал об использовании Fiddler для достижения следующей цели...

У меня есть служба на основе JavaScript, которую я хочу продемонстрировать потенциальным клиентам. Чтобы показать им, что их веб-сайт может выглядеть, если они устанавливают (то есть включают) мой script, я хочу настроить Fiddler на своем ПК, чтобы при получении веб-сайта клиента

<script type="text/JavaScript" src="myscript.js"></script>
Строка

будет включена в раздел HTML <head>.

Можно ли легко сделать это с помощью Fiddler? Может ли кто-нибудь указать мне, где я могу найти документацию, охватывающую это, если это так?

Спасибо!

---- Обновление ----

В настоящее время я прибегал к использованию BHO для добавления моего script на страницу. Я использую execScript(), на onDocumentComplete, для запуска простой части JavaScript, которая добавляет файл .js, который мне нужен для этой страницы. Но указатели EricLaw и ответ на дрожание выглядят как способ сделать более полный (и элегантный) способ делать то, что мне нужно.

Если кто-то заинтересован, я могу загрузить здесь код BHO. -Спасибо!

4b9b3361

Ответ 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");

Ответ 2

если вы используете jQuery, вы можете добавить js на лету. Вероятно, я думаю, у вас может быть метод, который включает/исключает ваш script на основе некоторого параметра запроса. Вот как вы бы включили JS с jQuery

$.getScript('someScript.js',function(){
//Do something here after your script loads
});