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

橘子皮... 2011-01-08 05:30:38
如何获得webbrowser网页里某元素所占用的位置坐标?
比如百度那个id为su的按钮占用的位置坐标左上点的坐标--右下点的坐标
这个有办法实现吗??
...全文
1106 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
橘子皮... 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xxyj64501 的回复:]
元素相对于什么的坐标?
相对于Webbrowser?Webbrowser的父容器?还是屏幕?
不管什么坐标,首先要取得元素(HtmlElement)在父容器(HtmlWindow或Frame)中的位置,暂时不考虑Frame/Iframe容器的情况,那种比较复杂。
首先用HtmlElment2的getBoundingClientRect方法可以得到元素的矩形(Rect),这就得到了元素在Web……
[/Quote]

没啥说的,完全正确!呵呵
其实获得任何一个坐标都行,我本意当然是获得相对于web容器的相对坐标了
用了getBoundingClientRect果然就正确了,不过我那种写法不知道错在哪,按道理也没错啊
xxyj64501 2011-01-10
  • 打赏
  • 举报
回复
元素相对于什么的坐标?
相对于Webbrowser?Webbrowser的父容器?还是屏幕?
不管什么坐标,首先要取得元素(HtmlElement)在父容器(HtmlWindow或Frame)中的位置,暂时不考虑Frame/Iframe容器的情况,那种比较复杂。
首先用HtmlElment2的getBoundingClientRect方法可以得到元素的矩形(Rect),这就得到了元素在Webbrowser的位置。
再用ClienttoServer,可以将它在Webbrowser中的位置分别转换成元素在容器和在屏幕的位置。只是这一步你需要用一点特殊的办法得到Webbrowser的句柄。
橘子皮... 2011-01-10
  • 打赏
  • 举报
回复
顶下,大家都来发表下看法啊
橘子皮... 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 myjian 的回复:]
Picture1.Width = aa(2): Picture1.Height = aa(3)
Picture1.Move aa(0), aa(1

这里每个值都要乘以15,因为VB里是用缇作单位的,而你取到的是象素.
[/Quote]

你试下啊,乘15当然也不行啦,早就测试过了
嗷嗷叫的老马 2011-01-10
  • 打赏
  • 举报
回复
Picture1.Width = aa(2): Picture1.Height = aa(3)
Picture1.Move aa(0), aa(1

这里每个值都要乘以15,因为VB里是用缇作单位的,而你取到的是象素.
橘子皮... 2011-01-09
  • 打赏
  • 举报
回复
LS高手指点下下吧~~~~
橘子皮... 2011-01-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 myjian 的回复:]
查了一下,先得到这个对象,然后访问.offsetTop, .offsetLeft, .offsetWidth, .offsetHeight四个属性.
[/Quote]

Private Sub Command1_Click()
Set a = ie1.Document.getelementbyid("su")
aax = GetPosition(a)
aa = Split(aax, "|")
Picture1.Width = aa(2): Picture1.Height = aa(3)
Picture1.Move aa(0), aa(1)
End Sub

Private Sub Form_Load()
Me.Show
ie1.Navigate "www.baidu.com"
End Sub

Function GetPosition(xobj) As String
xLeft = 0: xTop = 0: GetPosition = xobj.offsetwidth & "|" & xobj.offsetheight
While Not (xobj Is ie1.Document.body)
xLeft = xLeft + xobj.offsetLeft
xTop = xTop + xobj.offsetTop
Set xobj = xobj.Parentnode
Wend
GetPosition = xLeft & "|" & xTop & "|" & GetPosition
End Function

结果发现不正确啊,我ie1是0,0坐标,哪里错了?
橘子皮... 2011-01-09
  • 打赏
  • 举报
回复
offsetTop :
当前对象到其上级层顶部的距离.

没有到整个页面中坐标的属性吗??用style.top可以吗,貌似没返回
嗷嗷叫的老马 2011-01-09
  • 打赏
  • 举报
回复
查了一下,先得到这个对象,然后访问.offsetTop, .offsetLeft, .offsetWidth, .offsetHeight四个属性.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧