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

Cef/CefSharp中DevTools的Page.windowOpen事件无法触发问题咨询

问题原因

  1. 第一环节问题在你的代码实现:CDP的Page域事件默认处于未启用状态,必须主动调用Page.EnableAsync()完成启用后,才能接收到WindowOpen等事件,你当前的代码遗漏了这一步。
  2. 若完成域启用后事件仍未触发,问题出在Cef底层的默认弹出窗口处理逻辑:部分CEF版本会优先拦截window.open调用走内置的弹出窗口创建流程,不会将事件上报到CDP层,需要手动配置禁用默认弹出窗口接管。

修正后示例代码

let browser = new ChromiumWebBrowser("https://www.google.com")
//此处省略等待浏览器加载完成的代码
let client = browser.GetDevToolsClient()
// 新增:启用Page域,才能接收Page相关的所有CDP事件
client.Page.EnableAsync().Wait()
client.Page.WindowOpen.Add(fun x -> Console.WriteLine(x.Url))
// 此时调用window.open即可正常触发事件
client.Runtime.EvaluateAsync("window.open('https://www.wikipedia.org')") |> ignore

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:24:02