【问题标题】:problem of getting url of loading html page (c#)获取加载html页面的url问题(c#)
【发布时间】:2021-05-07 15:17:35
【问题描述】:

嗯,

我开发了一个本机浏览器,但在此浏览器上导航的网站出现问题。

一个输入[“type”]-按钮点击发布一个http请求以获取并在新标签(onglet)中显示另一个页面。

我正在尝试几种方法,但 WebBrowser 的 TabPageof 是空白的,并且我打开了一个 IE 资源管理器窗口。

这里是代码

 private void Browser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {
 webBrowser22 = (WebBrowser)sender;
            if (webBrowser22.Document != null)
            {
                foreach (HtmlElement tag in webBrowser22.Document.All)
                {
 HtmlElementCollection elements = webBrowser22.Document.GetElementsByTagName("input");

                for (int i = 0; i < elements.Count; i++)
                {
                    HtmlElement el = elements[i];
                    string elType = el.GetAttribute("type");

                    switch (elType)
                    {
                        case "radio":
                        case "checkbox":
                        case "button":
                            {
                                el.MouseUp += new HtmlElementEventHandler(link_MouseUpPup);
                                
                            }
}}}}

private void link_MouseUpPup(object sender, HtmlElementEventArgs e)
        {
            
            this.tb2 = new System.Windows.Forms.TabPage();
            this.webBrowser221 = new System.Windows.Forms.WebBrowser();
           
            var linky = (HtmlElement)sender;
            mshtml.HTMLAnchorElement ba = (mshtml.HTMLAnchorElement)linky.DomElement;

       
            //  if ((ba.target != null && ba.target.ToLower() == "_blank") || e.ShiftKeyPressed || e.MouseButtonsPressed == MouseButtons.Middle)

            //if (Regex.Match(e.ReturnValue.ToString(), "http:").Value != null || Regex.Match(e.ReturnValue.ToString(), "https:").Value != null)
            
                tabControl1.Controls.AddRange(new Control[] { this.tb2 });
                tb2.Controls.AddRange(new Control[] { this.webBrowser221 });
                webBrowser221.Dock = DockStyle.Fill;

1ERE METHODE----
                //webBrowser221.Navigate(HttpContext.Current.Request.Url.AbsoluteUri);
2EME METHODE----                
//webBrowser221.Navigate(ba.href);
3EME METHODE----
                // webBrowser221.Navigate(HttpContext.Current.Request.ServerVariables["URL"].ToString());
4EME METHODE----               
// webBrowser221.Navigate(e.ToElement.GetAttribute("onclick").ToString());
                
tb2.Text = e.ToElement.GetAttribute("onclick").ToString();
                tb2.ToolTipText = webBrowser221.StatusText;
            }

问题是我会在他的进程之后通过点击输入打开网站页面加载(该进程是用函数window.open和属性target =“_blank”在html和javascript中编程的)由c#控件网络浏览器。

问题出在哪里,打开的是浏览器而不是 webBrowser 窗口。

感谢您的帮助。

文学硕士

【问题讨论】:

  • 对于此 webBrowser 控件,该方法执行单击按钮,但它不执行与此单击按钮关联的脚本 javascript。

标签: javascript c# asp.net winforms


【解决方案1】:

最后,

我使用了“Microsoft Internet Controls”的包引用“SHDocVm”,并在 case 按钮​​之后放置了一个函数处理程序 NewWindow3,没关系,一个带有 target="_blank" 的 window.open() javascript 函数打开了一个新页面浏览器。

真正属于你的。

文学硕士

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2011-08-05
    • 1970-01-01
    • 2015-11-03
    • 2015-02-25
    相关资源
    最近更新 更多