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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM