在WebBrowser控件中阻止alert,confirm对话框

在WiinForm使用WebBrowser控件的过程中,常常会被目标网页上弹出的alert、confirm等对话框打断工作流程。google了一下,发现有人采用定时器自动送Enter,也有人采用FindWindow等方法来进行自动关闭,其实,我们只需要在目标网页上执行一段脚本就可以了。

     //禁用目标window的confirm、alert等对话框。
        private void disableConfirm()
        {
            HtmlDocument doc = webBrowser1.Document.Window.Frames["mainFrame"].Document;
            //框架结构中,必须正确的指定目标框架

            IHTMLWindow2 win = (IHTMLWindow2)doc.Window.DomWindow;

            string s = @"function confirm() {";
            s += @"return true;";
            s += @"}";

            s += @"function alert() {}";

            win.execScript(s, "javascript");

        }

为了使用IHTMLWindow2接口,必须的添加对非托管COM对象的托管包装,在VS2005中很简单,只需要在项目引用里面选择COM选项卡,添加Microsoft HTML Object Library即可,路径为C:/Windows|System32/MSHTML.TLB。在CS文件里面引入托管包装的命名空间mshtml即可。

using mshtml;

存取网页的DOM元素:

HtmlElement euser = webBrowser1.Document.All["txtUserName"];
HtmlElement bSubmit = webBrowser1.Document.All["Button1"];

euser.SetAttribute("value","想设置的值");                 //设置DOM元素value属性
bSubmit.InvokeMember("click");                               //激发该元素的click事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值