【问题标题】:Retrieve the offset of <span> tag in web browser control C#在 Web 浏览器控件 C# 中检索 <span> 标记的偏移量
【发布时间】:2013-02-13 19:03:00
【问题描述】:

我需要获取标签的偏移位置... 我在用 HtmlElementCollection sp = textwebBrowser1.Document.GetElementsByTagName("span"); 获取跨度标签的集合....但在某些情况下,即使我在页面中有跨度标签,集合的计数为零...我猜这是因为一些对象标签之间有图像信息。 ..example-

在这种情况下我不知道如何检索 span 标签的偏移量

HTML 代码:

<HTML><BODY>.....Using <OBJECT> and <EMBED><HTML><HEAD><TITLE>A Web page with a rolling die</TITLE></HEAD><BODY><OBJECT ID="Dieroll1"CLASSID="CLSID:46646B43-EA16-11CF-870C-00201801DDD6"CODEBASE="diero‌​ll.cab#Version=1,0,0,1"WIDTH="200"HEIGHT="200"><PARAM NAME="ForeColor" VALUE="0"><PARAM NAME="BackColor" VALUE="16777215"><PARAM NAME="Image" VALUE="beans.bmp"><EMBED LIVECONNECT NAME="Dieroll1"WIDTH="200"HEIGHT="200"CLASSID="CLSID:46646B43-EA16-11CF-870C-002‌​01801DDD6"TYPE="application/oleobject"CODEBASE="dieroll.cab#Version=1,0,0,1"PARAM‌​_ForeColor="0"PARAM_BackColor="16777215"></OBJECT><BR>Hthe die</BODY></HTML>Arrange to run Explorer when you debug the control.Here's the syntax for an OBJECT tag that sets the Image property:<OBJECTCLASSID="clsid:46646B43-EA16-11CF-870C-00201801DDD6"CODEBASE="http://www.gregcons.com/test/dieroll.ocx"ID=die1WIDTH=200HEIGHT=200ALIGN=centerHSPACE=0VSPACE=0><PARAM NAME="Dots" VALUE="1"><PARAM NAME="Image" VALUE="http://www.gregcons.com/test/beans.bmp">and the <span style='background-color: rgb(255, 255, 0);'>image</span> file you are using....</BODY></HTML>

【问题讨论】:

  • 对不起...我无法添加整个 html 代码...因为它很大:(
  • 添加部分html代码而不是整个代码

标签: c# webbrowser-control html


【解决方案1】:

我在你的问题中使用了你的 html 代码,我得到了所有带有以下代码的 span 标签:(代码必须在页面加载后运行)

 void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        List<HtmlElement> spanelement = new List<HtmlElement>();
        foreach (HtmlElement span in webBrowser1.Document.GetElementsByTagName("span"))
        {
            spanelement.Add(span);
            //Or Add Offset
            //spanelement.Add(span.OffsetRectangle.Top;);
        }
    }

【讨论】:

  • 你的代码在我的情况下不起作用..我猜它不是对象标签而是内部 html,因此我无法获得跨度标签...请添加上面的 html 代码如果代码有效,请到上一个尝试..
  • &lt;OBJECT&gt; and &lt;EMBED&gt; ......&lt;/HTML&gt; 您的 html 代码不包含任何 span 标签???!!!我使用了您的 html 代码的第二部分
  • 我的文本之间有很多 html 标签...我删除了这些标签以便获得 span 标签的正确偏移量
【解决方案2】:

为 span 标签提供一个 id 并使用

document.getElementById('id')

【讨论】:

  • 我试过了...但它不起作用...正如我所提到的,我猜这是因为它们之间的对象标签...有没有办法删除这些对象标签,所以我能得到 标签的位置吗?
猜你喜欢
  • 2013-03-29
  • 2019-10-26
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多