首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CefSharp 79.1.360 (Winform):如何在LifeSpanHandler中重新激活弹出窗口

CefSharp是一个基于Chromium的.NET开源项目,用于在WinForms应用程序中嵌入和使用Chromium浏览器。CefSharp 79.1.360是CefSharp的一个特定版本。

在CefSharp中,可以通过实现自定义的LifeSpanHandler来处理弹出窗口的行为。LifeSpanHandler是一个接口,用于控制浏览器如何处理新窗口的请求。

要在LifeSpanHandler中重新激活弹出窗口,可以按照以下步骤进行操作:

  1. 创建一个类并实现CefSharp的ILifeSpanHandler接口。
代码语言:txt
复制
public class CustomLifeSpanHandler : ILifeSpanHandler
{
    public bool DoClose(IWebBrowser chromiumWebBrowser, IBrowser browser)
    {
        // 在此处处理关闭窗口的逻辑
        return false;
    }

    public void OnAfterCreated(IWebBrowser chromiumWebBrowser, IBrowser browser)
    {
        // 在此处处理新窗口创建后的逻辑
    }

    public void OnBeforeClose(IWebBrowser chromiumWebBrowser, IBrowser browser)
    {
        // 在此处处理窗口关闭前的逻辑
    }

    public bool OnBeforePopup(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
    {
        // 在此处处理弹出窗口的逻辑
        newBrowser = null;
        return false;
    }
}
  1. 在创建CefSharp浏览器控件之前,将自定义的LifeSpanHandler设置给CefSharp的Settings对象。
代码语言:txt
复制
var settings = new CefSettings();
settings.RegisterScheme(new CefCustomScheme
{
    SchemeName = "custom",
    SchemeHandlerFactory = new CustomSchemeHandlerFactory()
});

Cef.Initialize(settings);

var browser = new ChromiumWebBrowser("custom://localresource/index.html");
browser.LifeSpanHandler = new CustomLifeSpanHandler();

在上述代码中,我们创建了一个CustomLifeSpanHandler类,并将其设置为浏览器控件的LifeSpanHandler。在CustomLifeSpanHandler中,你可以根据需要实现DoClose、OnAfterCreated、OnBeforeClose和OnBeforePopup等方法来处理弹出窗口的行为。

请注意,以上代码仅为示例,具体实现可能因项目需求而有所不同。关于CefSharp的更多信息和使用方法,你可以参考腾讯云的相关文档和示例代码。

参考链接:

  • CefSharp官方文档:https://github.com/cefsharp/CefSharp
  • CefSharp示例代码:https://github.com/cefsharp/CefSharp.MinimalExample
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • CefSharp中c#和JavaScript交互读取电脑信息

    CEF是由Marshall Greenblatt于2008年创建的基于Google Chromium的BSD许可开源项目。与主要关注谷歌Chrome应用程序开发的Chromium项目本身不同,CEF专注于在第三方应用程序中促进嵌入式浏览器用例。CEF通过提供生产质量稳定的API,发布跟踪特定Chromium版本和二进制发行版的分支机构,使用户免受基础Chromium和Blink代码复杂性的影响。CEF中的大多数功能都具有默认实现,这些实现提供丰富的功能,同时几乎不需要用户进行集成工作。目前,全球已有超过1亿个CEF安装实例嵌入到来自各种公司和行业的产品中。CEF维基百科页面上提供了使用CEF的公司和产品的部分列表。CEF的一些用例包括:

    02

    【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理

    最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用。其实,在这款触发器编辑器之前,已经有一款用WinForm开发的1.0版触发器编辑器了,不过由于界面不太友好、操作繁琐以及学习使用成本较高,所以也饱受策划们的吐槽。而新研发的这款编辑器是直接嵌入在Unity中,作为Unity的拓展编辑器来使用的。当然在开发中,马三也遇到了种种的问题,不过还好,在同事的帮助下都一一解决了。本篇博客,马三就来和大家分享一下其中一个比较有趣的需求,RT,“UnityEditor多重弹出窗体与编辑器窗口层级管理”。   针对一些逻辑和数据部分的代码,由于是公司机密而且与本文的内容联系不大,马三就不和大家探讨了,本文中我们只关注UI的表现部分。(本文中所有的样例代码均经过重写,只用了原来的思想,代码结构已经和公司的编辑器完全不一样了,因此不涉及保密协议,完全开源,大家可以放心使用)先来说下今天我们要探讨的这个需求吧:

    03

    用算号器来破解SAPR/3

    如何用算号器激活SAP系统。 新建用户,必须使用具有SAP_ALL权限的用户,如以我的用户为SAP为例; 用SAP_ALL权限的用户(如SAP)登录,运行事务 SLICENSE 或通过菜单打开,路径“工具→系统管理→系统管理→SLICENSE - SAP许可”,打开相应的窗口。 按F6或者按Install New License弹开安装新LCENSE的窗口; 运行zapgui.exe,填写相应的项,填写方式如下:    License number:空    User/Object:第二步的登录名    SAP Version:版本号(如我的为4.7)    Customer key:第三步弹出窗口hardware key的值。    Installation number:0000000001    SID:第三步弹出窗口SAP Ssytem的值。    YYYYMMDD:第三步弹出窗口Expires On的值(注意年月日)。 点击install,把生成的result的值复制到第二步打开窗后的key字段,Inst. Number: 填入0000000001,保存许可。 点击系统-状态,找到Install Number. 重新运行zapgui.exe    License number:第六步的Install Number.    User/Object:第二步的登录名    SAP Version:版本号(如我的为4.7)    Customer key:第三步弹出窗口hardware key的值。    Installation number:0000000001    SID:第三步弹出窗口SAP Ssytem的值。    YYYYMMDD:第三步弹出窗口Expires On的值(注意年月日)。 点击Developer,在result处即为产生的access-number值。

    03
    领券