我将html页面加载到C#webbrowser对象中。 html页面中的脚本标记之间有一些远程javascript文件的链接。其中一个有很多错误,我无法解决,因为我无法更改javascript。由于不需要,我宁愿禁用它。
我想停止webbrowser加载来自特定域的任何javascript,或者只是让浏览器返回' 404'对于那个javascript文件。这可以通过自动回复器在Fiddler中完成。
有没有办法在C#中这样做?就像迷你代理转发除* .domainwitherrors.com之外的所有请求?如果不这样,有没有办法在C#中直接使用Fiddler?
诱捕'导航' webbrowser中的事件在加载到DOM之前不会捕获javascript。
webBrowser1.Navigate("http://www.somedomain.com");
webBrowser1.Navigating += webBrowser1_Navigating;
void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
if (e.Url.ToString().Contains("domainwitherrors"))
{
return;
}
}
答案 0 :(得分:2)
不,WebBrowser控件不提供任何请求过滤机制,允许您仅阻止来自一个域的子下载。您可以将域添加到您的受限制站点区域(这将阻止其使用IE的工具>在在您的系统上的每个基于IE的浏览器中运行脚本的能力)。互联网选项>安全选项卡。
FiddlerCore是一个.NET类库,可以嵌入到应用程序中,以提供您正在描述的功能。您甚至可以使用它公开的URLMonInterop.SetProxyInProcess
API,以便只有您的应用程序(而不是整个系统)通过代理路由其流量。