为什么使用 SetAsPopup 阻止使用 CefSharp ChroniumWebBrowser 执行事件 FrameLoadEnd

Why using SetAsPopup prevent event FrameLoadEnd to be executed using a CefSharp ChroniumWebBrowser

我将 CEFSharp 与 WinForms C# 结合使用,我在 ChroniumWebBrowser 控件的 FrameLoadEnd 上添加了一个处理程序。

我还创建了自己的 LifeSpanHandler 来创建自定义弹出窗口 window。这很好用,但是当 ChroniumWebBrowser 设置为弹出窗口时,我仍然遇到 FrameLoadEnd 未执行的问题:ChroniumWebBrowser.SetAsPopup();

有人可以指出我必须做些什么来解决这个问题吗?

我已经尝试删除 "SetAsPopop()",这修复了事件,但我无法使用此解决方案,因为如果我尝试访问 "automate" 的网站,它将把我重定向到其他地方不要调用 SetAsPopup();在我的 ChroniumWebBrowser 弹出窗口上。

为了帮助您了解我的问题,我制作了一个小解决方案来演示它。你可以通过这个link:

下载

http://www.blacketik.com/Whosebug/FormTester.zip

zip 文件很大,因为我包含了测试它所需的一切,包括 cefsharp/CEF。我使用 Visual Studio 2015.

制作了解决方案

要调试解决方案,您必须查看控制台输出。

谢谢

实施ILoadHandler并分配一个新实例,例如browser.LoadHandler = new CustomLoadHandler()

https://github.com/cefsharp/CefSharp/blob/cefsharp/45/CefSharp/ILoadHandler.cs

ChromiumWebBrowserFrameLoad/End 事件没有为 Popups 调用。