如何在Winform的Web浏览器控件中触发__dopastback()

How to Fire __dopastback() in Winform's Webbrowser Control

本文关键字:dopastback 控件 Winform 浏览器 Web      更新时间:2023-09-26

我正在尝试在WinForms中操作URL的html以实现自动化目的,在网页上有一个锚标记:

<Ahref="javascript:__doPostBack('dgBloodDonorResults$ctl01$ctl01','')">2</A>

如何自动触发__dopostback()?

我试过这个:

           mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
            mshtml.IHTMLElementCollection anchors = doc.getElementsByTagName("a");
            foreach (mshtml.IHTMLElement anchorElement in anchors)
            {
                mshtml.HTMLAnchorElement anchor = anchorElement as mshtml.HTMLAnchorElement;
                if (anchor != null)
                {
                    string outerHTML = anchor.outerHTML;
                    if (outerHTML.Contains("dgBloodDonorResults$"))
                    {
                      
                        if (currentGridPage +1 <= totalPagesInGrid)
                        {
                            currentGridPage++;
                            System.Diagnostics.Debug.WriteLine(anchor.href + " HTML: " + outerHTML);
                            anchor.click(); //I Want this to firing.
                          
                        }
                        else
                        {
                            isPostback = false;
                            currentGridPage = 0;
                            return;
                        }
                        //UpdateBrowser();
                    }
                }
            }
           `

您可以直接调用该方法:

webBrowser1.Document.InvokeScript("__doPostBack", 
      new object [] { "dgBloodDonorResults$ctl01$ctl01", "" } 
    );

有关 MSDN 的文档