CefSharp block popup windows
Recently I had to use CefSharp for a project of mine and needed to block popup windows. There are not a lot of up-to-date answers or solutions for issues pertaining to CefSharp, so I thought I should just share mine.
You will need to implement your own class which inherits or extends the ILifeSpanHandler
interface
public class BrowserLifeSpanHandler : ILifeSpanHandler { public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser) { MessageBox.Show("Popup detected. Target url : " + targetUrl); newBrowser = null; return true; } public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser) { // } public bool DoClose(IWebBrowser browserControl, IBrowser browser) { return false; } public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser) { //nothing } }
And in your browser instance, set the LifeSpanHandler
member to your own handler
BrowserLifeSpanHandler blsh = new BrowserLifeSpanHandler(); browser.LifeSpanHandler = blsh;
Be First to Comment