gpt4 book ai didi

c# - 如何阻止网络浏览器上的图像

转载 作者:太空狗 更新时间:2023-10-29 20:59:12 24 4
gpt4 key购买 nike

我正在构建一个带有 WebBrowser 的 C# 应用程序我正在尝试找出一种方法来阻止图像,即让它们在网站加载时不显示(以便网站加载更容易)。

我试图删除 <img>通过 webBrowser1.DocumentText 获取标签并使用 Regex.Replace删除图像,但它显示了一个空白页 aaa当我使用代码时。有没有更好的方法来删除图像?非常感谢任何帮助。

代码:

var html_source = webBrowser1.DocumentText;
var newOne = Regex.Replace(html_source, "<img.*/>", "", RegexOptions.Multiline);
webBrowser1.DocumentText = newOne + "aaa";

更新:

我试过下面的代码(只是为了测试),但仍然只显示 aaa .

var html_source = webBrowser1.DocumentText;
webBrowser1.DocumentText = html_source + "aaa";

最佳答案

编辑

找到 this question关于 SO 和一个完整的项目,可以帮助您 codeproject.com .在此示例中,有一个使用 webBrowser COM 组件的用户控件。正如我在原始答案中所写,我不认为 可以阻止 .net Framework WebBrowser 加载图像。在浏览器控件收到纯 html 文本后,您需要访问以下级别以拦截加载图像

... The most obscure and important part of the control is the IDispatch_Invoke_Handler(). ... how to implement IDispatch::Invoke in order to restrict what IE was showing (such as images, ActiveX controls, Java). I found out that if you add a IDispatch_Invoke_Handler() method in your code with the COM dispatch identifier of -5512, this does the job for you. A very obscure answer, but it works well....

原创

你可以试试这个

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Debug.WriteLine("documentCompleted");
HtmlDocument doc = webBrowser1.Document;
foreach (HtmlElement imgElemt in doc.Images)
{
imgElemt.SetAttribute("src", "");
}
}

但正如MSDN所说

Handle the DocumentCompleted event to receive notification when the new document finishes loading. When the DocumentCompleted event occurs, the new document is fully loaded, which means you can access its contents through the Document, DocumentText, or DocumentStream property.

我认为您无法使用 .net Framework 中的 webBrowser 控件执行此操作。

关于c# - 如何阻止网络浏览器上的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com