javascript - 防止浏览器控制从特定域加载 javascript

标签 javascript c# webbrowser-control fiddler fiddlercore

我正在将 html 页面加载到 C# webbrowser 对象中。 html 页面中的 script 标记之间有一些远程 javascript 文件的链接。其中之一有许多错误,我无法纠正,因为我无法更改 JavaScript。由于不需要它,我宁愿禁用它。

我想阻止网络浏览器从特定域加载任何 javascript,或者只是让浏览器返回该 javascript 文件的“404”。这可以在 Fiddler 中使用自动回复器来完成。

有没有办法在C#中做到这一点?就像一个迷你代理转发除 *.domainwitherrors.com 之外的所有请求?如果不行,有没有办法在C#中直接使用Fiddler?

在 Web 浏览器中捕获“导航”事件不会在 JavaScript 加载到 DOM 之前捕获它。

   webBrowser1.Navigate("http://www.somedomain.com");
   webBrowser1.Navigating += webBrowser1_Navigating;

    void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
        if (e.Url.ToString().Contains("domainwitherrors"))
        {
            return;
        }

}

最佳答案

不,WebBrowser 控件不提供任何允许您阻止仅从一个域进行子下载的请求过滤机制。您可以使用 IE 的工具 > Internet 选项 > 将域添加到您的受限站点区域(这将阻止其在系统上每个基于 IE 的浏览器中运行脚本的能力)安全选项卡。

FiddlerCore是一个 .NET 类库,可以嵌入到应用程序中以提供您所描述的功能类型。您甚至可以使用它公开的 URLMonInterop.SetProxyInProcess API,以便只有您的应用程序(而不是整个系统)通过代理路由其流量。

关于javascript - 防止浏览器控制从特定域加载 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763137/

相关文章:

javascript - 为什么 Angular 重复过滤器只能访问返回函数中的元素

javascript - 如何设置使用 jQuery 变量指定的 DIV 文本?

javascript - 在 Angular 6 中对可观察到的表进行排序

c# - 如何在 C# 中将数据源绑定(bind)到 .rdlc 报告

c# - 在 WinForms WebBrowser 控件中显示 Wonky 的 Flash 视频

javascript - 为什么在我关闭我的 android 应用程序后 javascript 继续?

c# - AJAX 请求错误

c# - 引用不经意的代码时,可空引用类型会静默失败吗?

c# - asp.net 网站中的 webbrowser 类

c# - .net Webbrowser控件显示不一样