cef3 模拟浏览器操作时,会遇到点击链接之后弹出新窗口的情况,
解决:重写ChromiumWebBrowser 浏览器的接口 ILifeSpanHandler
internal class LifeSpanHandler : 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, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser) { newBrowser = null; //新窗口为空 var Browser = (ChromiumWebBrowser)chromiumWebBrowser; //获取浏览器对象 Browser.Load(targetUrl); //浏览器直接跳转url return true; //Return true to cancel the popup creation copyright by codebye.com. } }
最后在应用该重写接口
browser.LifeSpanHandler = new LifeSpanHandler();