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; }