26

次の目的でFiddlerを使用することを考えていました...

見込み客にデモンストレーションしたい JavaScript ベースのサービスがあります。彼らが私のスクリプトをインストールした場合 (つまり、インクルードした場合) に、彼らの Web サイトがどのように見えるかを示すために、私の PC に Fiddler をセットアップして、クライアントの Web サイトを取得するときに、

<script type="text/JavaScript" src="myscript.js"></script>

行が HTML<head>セクションに含まれます。

これは Fiddler で簡単に実行できますか? もしそうなら、誰かがそれをカバーするドキュメントを見つけることができる場所を教えてもらえますか?

ありがとう!

- - アップデート - -

当分の間、BHO を使用してスクリプトをページに追加することに頼っています。onDocumentComplete で execScript() を使用して、必要な .js ファイルをページに追加する単純な JavaScript を実行します。しかし、EricLaw のポインターとジッターの答えは、私が必要とすることを行うためのより完全な (そしてエレガントな) 方法のようです。

誰かが興味を持っている場合は、ここに BHO コードをアップロードできます。-ありがとう!

4

3 に答える 3

31

フィドラーを開く -> メニュー ルール -> ルールのカスタマイズ (またはCtrl+を押すR)

CustomRule.jsファイルが開きます行が見つかるまで下にスクロールします

static function OnBeforeResponse(oSession: Session)

これがコードの場所です。ここでは、ブラウザが認識する前にサーバーの応答を変更できます。

次のコード サンプルは、水平メニューのUnansweredリンクをUnanswered jQuery Questionsへのショートカットとして機能するリンクに置き換える 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); 
}

問題に合ったコードをハックできるはずです。

// 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");
于 2009-12-20T11:29:35.427 に答える
0

jQueryを使用する場合は、その場でjsを追加できます。クエリパラメータに基づいてスクリプトを含める/除外するメソッドを使用できると思います。これは、jQueryにJSを含める方法です

$.getScript('someScript.js',function(){
//Do something here after your script loads
});
于 2009-12-19T19:42:19.690 に答える
0

試したことはありませんが、GreaseMonkey for IEはどうですか?

于 2009-12-19T20:23:51.717 に答える