private void OnStartNewWindow(object sender, BrowserExtendedNavigatingEventArgs e) { // Here we do the pop-up blocker work // Note that in Windows 2000 or lower this event will fire, but the // event arguments will not contain any useful information // for blocking pop-ups. // There are 4 filter levels. // None: Allow all pop-ups // Low: Allow pop-ups from secure sites // Medium: Block most pop-ups // High: Block all pop-ups (Use Ctrl to override) // We need the instance of the main form, because this holds the instance // to the WindowManager. PopupBlockerFilterLevel lvl = PopupBlockerFilterLevel.Medium; if (ConfigHelper.Current != null || ConfigHelper.Current.GeneralOptions != null) { lvl = ConfigHelper.Current.GeneralOptions.WebBrowser_PopupBlockerFilterLevel; } // Allow a popup when there is no information available or when the Ctrl key is pressed bool allowPopup = (e.NavigationContext == UrlContext.None) || ((e.NavigationContext & UrlContext.OverrideKey) == UrlContext.OverrideKey); if (!allowPopup) { // Give None, Low & Medium still a chance. switch (lvl) { case PopupBlockerFilterLevel.None: allowPopup = true; break; case PopupBlockerFilterLevel.Low: // See if this is a secure site if (this.browser.EncryptionLevel != WebBrowserEncryptionLevel.Insecure) { allowPopup = true; } else { // Not a secure site, handle this like the medium filter goto case PopupBlockerFilterLevel.Medium; } break; case PopupBlockerFilterLevel.Medium: // This is the most dificult one. // Only when the user first inited and the new window is user inited if ((e.NavigationContext & UrlContext.UserFirstInited) == UrlContext.UserFirstInited && (e.NavigationContext & UrlContext.UserInited) == UrlContext.UserInited) { allowPopup = true; } break; } } if (allowPopup) { // Check wheter it's a HTML dialog box. If so, allow the popup but do not open a new tab if (!((e.NavigationContext & UrlContext.HtmlDialog) == UrlContext.HtmlDialog)) { frmWebBrowser frm = WebBrowserFactory.CreateAndBrowse(e.Frame, e.Url.ToString()); e.AutomationObject = frm.browser.Application; WebBrowserFactory.ShowWebBrowser(frm); } } else { // Here you could notify the user that the pop-up was blocked MessageBox.Show("Popup was blocked.\r\n" + e.Url.ToString(), "Info", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); e.Cancel = true; } }
private void toolStripButton11_Click(object sender, EventArgs e) { frmWebBrowser frm = WebBrowserFactory.CreateAndBrowse(); WebBrowserFactory.ShowWebBrowser(frm); }