Posted at

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

More than 5 years have passed since last update.


  • インターネット上のサイト等,様々な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