You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET CefSharp中实现在同一窗口打开页面

解决CefSharp ChromiumWebBrowser新窗口打开链接的问题

要让百度页面内的链接在原窗口打开,你需要通过自定义ILifeSpanHandler拦截新窗口创建请求,修改后的完整代码如下:

Imports CefSharp
Imports CefSharp.Handler
Imports CefSharp.WinForms

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ChromiumWebBrowser1.Load("https://www.baidu.com")
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 设置自定义的生命周期处理器
        ChromiumWebBrowser1.LifeSpanHandler = New CustomLifeSpanHandler(Me.ChromiumWebBrowser1)
    End Sub

    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        ' 清理Cef资源,避免内存泄漏
        Cef.Shutdown()
    End Sub

    Private Sub bt_Click(sender As Object, e As EventArgs) Handles bt.Click
        TextBox1.Text = ChromiumWebBrowser1.Address
    End Sub

End Class

' 自定义生命周期处理器,拦截新窗口请求
Public Class CustomLifeSpanHandler
    Inherits LifeSpanHandler

    Private ReadOnly _browser As ChromiumWebBrowser

    Public Sub New(browser As ChromiumWebBrowser)
        _browser = browser
    End Sub

    Public Overrides Function OnBeforePopup(browser As IWebBrowser, browserFrame As IBrowserFrame, targetUrl As String, targetFrameName As String, targetDisposition As WindowOpenDisposition, userGesture As Boolean, popupFeatures As IPopupFeatures, windowInfo As IWindowInfo, client As IBrowserSettings, ByRef noJavascriptAccess As Boolean, ByRef newBrowser As IWebBrowser) As Boolean
        ' 在当前控件加载新链接
        _browser.Load(targetUrl)
        ' 返回True取消默认的新窗口创建
        Return True
    End Function
End Class

关键说明:

  • 在Form1_Load事件中,给ChromiumWebBrowser1绑定自定义的LifeSpanHandler
  • 自定义的CustomLifeSpanHandler继承自LifeSpanHandler,重写OnBeforePopup方法捕获新窗口的目标URL,让当前控件直接加载该地址,返回True阻止默认的新窗口弹出行为
  • 在Form1_FormClosing中添加Cef.Shutdown(),确保程序关闭时正确清理Cef资源,避免内存泄漏

内容的提问来源于stack exchange,提问作者Lee Trom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:18:38