vb 如何获得webbrowser控件的坐标 下面代码可以获取网页内坐标,但不可以获取图片或FALSH坐标.

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:04:57
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set M_Dom = WebBrowser1.Document

On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------

'这里是在WebBrowser1加载网页完成后,在WebBrowser1中执行一段js脚本,用来绑定鼠标按下事件
'当鼠标按下以后,js会控制网页跳转到 mouse://x|y 的页面,上面的代码可以截获这个协议
Dim js As String
'onmouseover
js = "document.body.oncontextmenu=function()" & vbCrLf & _
"{location.href='mouse://'+window.event.x+ '|'+window.event.y;}"

WebBrowser1.Document.parentWindow.execScript js, "javascript"
'------------------------------------------------
Exit Sub
'----------------
ToExit:
Resume Next
End Sub
WebBrowser1控件没有MouseMove事件,就不可以获取到坐标吗?

HTML中的标签没有与自身位置相对应的属性,虽然可以用CSS指定绝对位置,但是这种做法很少用,而且只对部分元素有效。如果这个网页非常简单,或许可以通过分析HTML源代码,根据Body的顶部间距、左边间距、字体大小、行距等来大体计算出一个链接文本在WebBrowser中的位置,进而转换成屏幕坐标;一旦这个网页比较麻烦,这种做法就不再可能,因为网页中有很多元素都是无法获取其面积的绝对大小的,比如一个未指定具体尺寸的图片、一个embed等,如果使用了框架那就更惨。

提问??

能否反向操作? 即已知屏幕坐标,如何用js控制网页跳转到 mouse://x|y 的页面??