我使用 CefSharp.Winforms Chromium 浏览器(版本 111.2.20)创建了一个程序,该程序将有效地充当 Web 浏览器。我有一个与 Chromium 浏览器一起使用的面板:
public ChromiumWebBrowser chromeBrowser;
public void InitializeChromium()
{
chromeBrowser = new ChromiumWebBrowser(TEXT_FIELD.Text);
chromeBrowser.Dock = DockStyle.Fill;
this.PANEL_BROWSER.Controls.Add(chromeBrowser);
}
这个初始化方法发生在“InitializeComponent();”之后。
当我使用内置的 WebBrowser (IE) 时,在导航到需要它的站点时会弹出窗口。但是,某些页面的加载方式存在问题,因此我使用的是 Chromium 浏览器。不幸的是,我没有使用 Chromium 浏览器弹出窗口。导航到该站点只会跳过登录弹出窗口,并且该站点无法加载。我已经查看了该工具的在线资源,但我是自学成才的,我并不完全理解解决这个问题的最佳方法。
我在我的程序中添加了以下代码(将其调整为 false),但第一行出现错误。我还注意到该课程没有参考资料,但我想要一些有关如何使其生效并允许弹出窗口的指导。
chromiumWebBrowser.LifeSpanHandler = new LifeSpanHandler();
public class LifeSpanHandler : CefSharp.Handler.LifeSpanHandler
{
protected override bool OnBeforePopup(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
{
newBrowser = null;
//Return true to cancel the popup creation
return false;
}
}
我绝不是专家,不胜感激。我可以跟进任何问题,如果不清楚,我会尽力澄清我的问题。
这些是我试图自己解决这个问题的资源。
https://github.com/cefsharp/CefSharp/wiki/General-Usage(弹出部分)
我的程序主要遵循 Fox Learn 的指南(没有标签): https://www.youtube.com/watch?v=p3trglnFZ9Y&ab_channel=FoxLearn
感谢您的任何建议和帮助。