首页 > 代码库 > C# webBrowser控件禁用alert,confirm之类的弹窗解决方案

C# webBrowser控件禁用alert,confirm之类的弹窗解决方案

同样的代码,我尝试了很多次都没有成功。最后终于成功了,是因为我没有在正确的事件里面调用这段代码。

    private void InjectAlertBlocker()        {            HtmlElement head = wbNav.Document.GetElementsByTagName("head")[0];            HtmlElement scriptEl = wbNav.Document.CreateElement("script");            mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement;            string alertBlocker = "window.alert = function () { }";            element.text = alertBlocker;            head.AppendChild(scriptEl);            wbNav.ScriptErrorsSuppressed = true;        }
//阻止弹出新窗口        private void wbNav_NewWindow(object sender, CancelEventArgs e)        {            e.Cancel = true;        }    //必须要在这个事件里面调用才能禁用,之前一直写在别的事件里面,浪费了2小时。        private void wbNav_Navigated(object sender, WebBrowserNavigatedEventArgs e)        {            InjectAlertBlocker();        }

为了加深印象,特别记录一下。

BTW,别忘记添加 mshtml.dll 这个组件。 全称:microsoft html object library 

C# webBrowser控件禁用alert,confirm之类的弹窗解决方案