1. Qiita
  2. 投稿
  3. Fiddler

Fiddlerを使って任意のJavaScriptを実行する方法

  • 14
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。
  • インターネット上のサイト等,様々なWebサイトにJavaScriptを埋める方法.テストとか,お遊び向け.
  • Fiddlerを使えばWebページのレスポンスにいろいろできるけど,書き換えるには設定ファイルに手を加える必要がある模様.
  • FiddlerScriptと呼ばれるものをを使えばいいっぽい.
  • FiddlerScriptは,JavaScriptに似た,JScriptという言語らしい.

編集方法

  • Fiddlerにて,メニューバー「Rules」→「Customize Rules..」を選択
  • メモ帳で対象ファイルが開く.
  • ファイルのありかは,C:\Users\ユーザ名\Documents\Fiddler2\Scripts\CustomRules.js
  • エディタの変更は,メニューバー「Tools」→「Fiddler Options」→「Tools」
  • 専用のFiddler2 ScriptEditorもある.補完が効くのでいいかも.

編集例

  • OnBeforeResponseメソッドを編集する.(レスポンスを返す直前のコールバックメソッド)
  • その他,Request,Responseの各タイミングでコールバックがある模様(参考URL参照)
  • 以下の通り書くと,bodyタグが閉じる前に,URLで示すJavaScriptを挿入可能
static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }

    // ここから↓を編集
    if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "html")) {
        var oBody = oSession.GetResponseBodyAsString();
        // Remove any compression or chunking
        oSession.utilDecodeResponse();
        var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);

        oBody = oBody.Replace("</body>", "<script src=\"http://hoge/hogehoge.js\"></script></body>");

        oSession.utilSetResponseBody(oBody);
    }
}

参考URL