首页 > 解决方案 > CefSharp如何像真正的浏览器C#一样清除当前的chrome web浏览器控制内容

问题描述

我们需要在图像服务器中查询图像并将其显示在 Windows 窗体中的 CEF Web 浏览器控件上。

public partial class CustomerWindow : Form
{
     private string image_url;
     private ChromiumWebBrowser _browser;  
     private bool _browserInitialised = false;   

     public CustomerWindow()
     {
           browser.IsBrowserInitializedChanged += OnIsBrowserInitializedChanged;
     }

     // calls to server for validating user credentials and get cookie
     public LoadData()
     {        
          if(_browserInitialised)
          {
              browser.Load(_imsContextualImageUrl);
          }         
     }

     public void OnIsBrowserInitializedChanged(object sender, EventArgs e)
     {
         var chromeWebBrowser = (ChromiumWebBrowser)sender;            
         if (!chromeWebBrowser.IsBrowserInitialized) return;            
         chromeWebBrowser.Load(_imsContextualImageUrl);          
         _browserInitialised = true;
     }
 }

我们只为每个应用程序创建一次 CEF 浏览器,并在表单的关闭事件中处理它。

代码正在工作并为有数据的 url 显示图像,当没有数据时,我们需要清除 CEF 浏览器上显示的先前图像并显示为空的 CEF 浏览器。

除了处理 CEF 浏览器并为每个启动请求重新创建它之外,还有其他解决方案吗?

标签: c#chromium-embedded

解决方案


ChromiumWebBrowser.LoadString(string html, string url) 很有帮助,但是除了 html 响应之外,chrome 浏览器还会使用客户端(公司)的代理服务器响应进行渲染。

尝试过,Load() API 即 ChromiumWebBrowser.Load("https:////somestring/someurl"),它呈现出空内容的魅力。感谢您的建议。


推荐阅读