WebBrowser如何遍历iframe中每个元素的在屏幕上的坐标?假如 已经找到 iframe 元素 ee ,
                   
HtmlDocument iframeDoc = ee.Document;遍历 iframeDoc 结果是父窗口的元素.正确的怎样写.谢谢.

解决方案 »

  1.   

    这是原理,获取title_txt在屏幕上的坐标位置,自己慢慢看吧WebBrowser wb;
    HTMLDocument doc = (HTMLDocument)wb.Document.DomDocument;
    object index = 1;
    IHTMLWindow2 frame1 = (IHTMLWindow2)doc.frames.item(ref index);
    HTMLDocument doc1 = (HTMLDocument)frame1.document;//51文章发表标题
    IHTMLElement title_txt = (IHTMLElement)doc1.getElementById("subject");int x = ((IHTMLElement)doc.getElementsByName("iframe的name").item(ref index)).offsetLeft + title_txt.offsetLeft + ((IHTMLElement)wb.Document.Body).offsetLeft + this.Left;
    int y = ((IHTMLElement)doc.getElementsByName("iframe的name").item(ref index)).offsetTop + title_txt.offsetTop + ((IHTMLElement)wb.Document.Body).offsetTop + this.Top;
      

  2.   

    更正下:
    int x = ((IHTMLElement)doc.getElementsByName("iframe的name").item(ref index)).offsetLeft + title_txt.offsetLeft + doc.body.offsetLeft + this.Left;
    int y = ((IHTMLElement)doc.getElementsByName("iframe的name").item(ref index)).offsetTop + title_txt.offsetTop + doc.body.offsetTop + this.Top;
      

  3.   

    HTMLDocument doc1 = (HTMLDocument)frame1.document;这步出错,
      

  4.   

    HtmlDocument doc = (HtmlDocument)webBrowser1.Document.Window.Frames["frame名字"].Document;
      

  5.   

    我提供给你的方法是通过Dom来访问webbrower页面元素至于你能否成功,看你的调试能够力了原理肯定无误
    别忘记using mshtml;
      

  6.   

    MessageBox.Show(webBrowser1.Document.Window.Frames["main"].Document.Body.InnerHtml);
    HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
    object j;
    for (int i = 0; i < doc.parentWindow.frames.length; i++)
    {
      j = i;
      HTMLWindow2Class frame = doc.parentWindow.frames.item(ref j) as HTMLWindow2Class;
      if (frame.name == "main")
      {   
      MessageBox.Show(frame.document.title);   
      }
    }   
    IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.Window.Frames["main"].Document.DomDocument;private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
      string url = webBrowser1.Document.Window.Frames["main"].Document.ActiveElement.GetAttribute("src");
    }