如何像使用 CefSharp 的本机 IE 浏览器一样为 Chromium 浏览器启用弹出窗口?

问题描述 投票:0回答:0

我使用 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://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-in-a-winforms-application

https://github.com/cefsharp/CefSharp/wiki/General-Usage(弹出部分)

如何处理 CefSharp 中的弹出链接

Cefsharp 中的弹出窗口处理程序

我的程序主要遵循 Fox Learn 的指南(没有标签): https://www.youtube.com/watch?v=p3trglnFZ9Y&ab_channel=FoxLearn

感谢您的任何建议和帮助。

c# cefsharp chromium-embedded
© www.soinside.com 2019 - 2024. All rights reserved.