C#如何获得webbrowser网页里某元素所占用的位置坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何获得webbrowser网页里某元素所占用的位置坐标相关的知识,希望对你有一定的参考价值。

用JS的方式获取就要用getBoundingClientRect方法,like this:

window.frames[‘mainframe‘].document.getElementById(‘Img‘).getBoundingClientRect().left;

 

但是JS时灵时不灵,下面就是不用JS的方法:

public Point GetOffset(htmlElement el)
{
    //get element pos
    Point pos = new Point(el.OffsetRectangle.Left, el.OffsetRectangle.Top);

    //get the parents pos
    HtmlElement tempEl = el.OffsetParent;
    while (tempEl != null)
    {
        pos.X += tempEl.OffsetRectangle.Left;
        pos.Y += tempEl.OffsetRectangle.Top;
        tempEl = tempEl.OffsetParent;
    }

    return pos;
}

var point = GetOffset(element);
var x = point.X;
var y = point.Y;

以上是关于C#如何获得webbrowser网页里某元素所占用的位置坐标的主要内容,如果未能解决你的问题,请参考以下文章

C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?

C# webBrowser1 获取提交后网页的内容

WebBrowser1占用大量内存解决办法

C# webbrowser如何打开https开头的网页

如何解决VB中WebBrowser控件持续打开网页占用的内存

C# webbrowser怎么获取JS加载的数据?