utilReplaceInResponse未显示浏览器中的更改

时间:2013-11-21 19:07:15

标签: fiddler

在FiddlerScript中工作,我在OnBeforeResponse方法上做了一些更改,这些方法曾经在不同的机器上工作(现在已经很久了),但现在不适合我。我把它归结为以下基本示例。

在fiddler沙盒页面上,我正在尝试将每个项目替换为每个项目网址:http://webdbg.com/sandbox/shop/

Fiddler脚本文件从原来修改为有两个新行。 1根据我见过的所有例子以及曾经为我工作的内容解码会话,1代替响应。

static function OnBeforeResponse(oSession: Session) {
    oSession.utilDecodeResponse();  //Added this.
    oSession.utilReplaceInResponse("per item", "per item");  //Added this

    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }
}

保存上面的fiddlerscript文件并刷新页面后,我没有在浏览器中看到替换显示。如果我查看Fiddler检查员,我看到替换。这意味着OnBeforeResponse确实在某个时刻被调用,utilReplaceInResponse也在执行。

更奇怪的是,如果我在所有响应之后放置断点(Fiddler - >规则 - >自动断点 - >响应后)并刷新页面,响应会按预期点击断点,然后单击运行到完成,浏览器确实显示替换。所以:没有断点,页面不会在呈现的页面中显示替换。使用断点并简单地运行完成,页面确实显示替换。

为什么页面显示浏览器中的更改,即使它在Fiddler检查器中显示,或者我设置了断点?

解决方案如果在主工具栏中选择了 Stream 选项 - 取消选择该选项并按预期工作。

环境:Fiddler v2.4.5.3 - 64位AMD64,VM:114.00mb,WS:132.00mb .NET 2.0.50727.5472 WinNT 6.1.7601 SP1

见过IE9和Chrome31

2 个答案:

答案 0 :(得分:6)

解决了自己。

我在工具栏中启用了Stream选项。 (Doh!)取消选择,OnBeforeResponse中的替换按预期工作。

答案 1 :(得分:1)

它可能是一个新的Fiddler版本功能,但我必须添加以下行以使我的find / replace工作:

oSession.utilDecodeResponse();