码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-12-25 17:47:00      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:error   text   win   block   alert   记录   void   soft   多次   

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

    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之类的弹窗解决方案

标签:error   text   win   block   alert   记录   void   soft   多次   

原文地址:http://www.cnblogs.com/wgale025/p/6219740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!