C# WebBrowser 取 window.open 新窗口 url的方法

              System.Windows.Forms.WebBrowser wb;       // WebBrowser 对象

            wb.NewWindow += new CancelEventHandler(wb_NewWindow);
            wb.DocumentCompleted += delegate
            {               
                #region 处理window.open新开窗口的问题

                System.Windows.Forms.HtmlElement html = wb.Document.CreateElement("div");
                html.InnerHtml += "<a id=\"popLink\" href=\"\" target=\"_blank\" style=\"display:none;\"></a>";
                wb.Document.Body.AppendChild(html);

                string jsHtml = "";
                jsHtml += "window.open=function(url, title, prop)  ";
                jsHtml += "{";
                jsHtml += "obj = document.getElementById('popLink');  ";
                jsHtml += "obj.style.display='block';  ";
                jsHtml += "obj.href=url;  ";
                jsHtml += "obj.focus();  ";
                jsHtml += "obj.click();  ";
                jsHtml += "obj.style.display='none'  ";
                jsHtml += "} ";
                mshtml.IHTMLDocument2 doc = wb.Document.DomDocument as mshtml.IHTMLDocument2;
                mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
                win.execScript(jsHtml, "javascript");

                #endregion

            };


        static void wb_NewWindow(object sender, CancelEventArgs e)
        {
            System.Windows.Forms.WebBrowser web = (System.Windows.Forms.WebBrowser)sender;
            string newUrl = web.StatusText.ToString();
            showNewWinWithUrlInner(null, newUrl, "", 800, 600, true, false);//自己取到新窗口url后自行处理
            e.Cancel = true;
        }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieZhengChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值