tips:程序中如何监控网页中元素的事件 对编写脚本熟悉的读者都知道页面中可以添加脚本响应元素的事件,例如超链接的OnClick事件,图片的OnMouseMove事件,我们也可以使VB程序响应这些事件。下面是一个VB响应页面中按钮的Click事件的代码:
首先建立一个新工程,在Form1中加入一个Webbrowser控件,然后在Form1中加入以下代码: Option Explicit Public Sub Some_Procedure()
MsgBox "你点击了按钮."
End Sub Private Sub Form_Load()
'下载空页面
WebBrowser1.Navigate2 "about:blank"
End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'建立事件响应类
Dim cfForward As clsForward '定义在浏览器中显示的HTML代码,其中包含一个按钮btnMyButton
Dim sHTML As String
sHTML = "<P>This is some text.</P>"
sHTML = sHTML & "<P>And here is a button.</P>"
sHTML = sHTML & "<BUTTON ID=btnMyButton>"
sHTML = sHTML & "Click this button.</BUTTON>" '将HTML代码写入浏览器
WebBrowser1.Document.body.innerHTML = sHTML '将事件响应类连接到页面的按钮btnMyButton上
Set cfForward = New clsForward
cfForward.Set_Destination Me, "Some_Procedure"
WebBrowser1.Document.All("btnMyButton").onclick = cfForward
End Sub 向工程中添加一个Class Module,Class Module的Name属性设定为clsForward,在clsForward中添加以下代码: Option Explicit Dim oObject As Object
Dim sMethod As String
Dim bInstantiated As Boolean Private Sub Class_Initialize()
bInstantiated = False
End Sub Public Sub Set_Destination(oInObject As Object, sInMethod As String)
Set oObject = oInObject
sMethod = sInMethod
bInstantiated = True
End Sub Public Sub My_Default_Method()
If bInstantiated Then
CallByName oObject, sMethod, VbMethod
End If
End Sub 运行程序,点击Webbrowser中的“Click this button”按钮。程序就会弹出消息框提示“你点击了按钮.”
首先建立一个新工程,在Form1中加入一个Webbrowser控件,然后在Form1中加入以下代码: Option Explicit Public Sub Some_Procedure()
MsgBox "你点击了按钮."
End Sub Private Sub Form_Load()
'下载空页面
WebBrowser1.Navigate2 "about:blank"
End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'建立事件响应类
Dim cfForward As clsForward '定义在浏览器中显示的HTML代码,其中包含一个按钮btnMyButton
Dim sHTML As String
sHTML = "<P>This is some text.</P>"
sHTML = sHTML & "<P>And here is a button.</P>"
sHTML = sHTML & "<BUTTON ID=btnMyButton>"
sHTML = sHTML & "Click this button.</BUTTON>" '将HTML代码写入浏览器
WebBrowser1.Document.body.innerHTML = sHTML '将事件响应类连接到页面的按钮btnMyButton上
Set cfForward = New clsForward
cfForward.Set_Destination Me, "Some_Procedure"
WebBrowser1.Document.All("btnMyButton").onclick = cfForward
End Sub 向工程中添加一个Class Module,Class Module的Name属性设定为clsForward,在clsForward中添加以下代码: Option Explicit Dim oObject As Object
Dim sMethod As String
Dim bInstantiated As Boolean Private Sub Class_Initialize()
bInstantiated = False
End Sub Public Sub Set_Destination(oInObject As Object, sInMethod As String)
Set oObject = oInObject
sMethod = sInMethod
bInstantiated = True
End Sub Public Sub My_Default_Method()
If bInstantiated Then
CallByName oObject, sMethod, VbMethod
End If
End Sub 运行程序,点击Webbrowser中的“Click this button”按钮。程序就会弹出消息框提示“你点击了按钮.”
解决方案 »
- webbrowser中点击图片链接的时候的焦点问题
- VB安装后不能使用
- 问:如何隐藏一个进程的窗体
- 小虾求代码
- 这是引用什么类型库:??Set ObjectAccessControl = CreateObject("SecurityMgr.AccessControl")
- 请问在vb中如何实现一个类对另一个类的继承?如何实现链表结构?
- 字符串比较的问题?
- 送分啦!简单的API参数类型转换问题!快!
- 老大们,帮下忙吧!急急急急急
- 打印问题.......在线等候
- CRYSTAL REPORTS连VFOXPRO的表打印时为何这什么慢!
- 各位老兄帮忙看看,Crystal Reports为何数据不能更新?
能否给出详细代码?
WebBrowser1.Document.All("btnMyButton").onclick = cfForward
是将元素btnMyButton的 onclick事件与cfForward 联系起来,你可以通过对页面中元素的遍历来得到你需要监控的超链接元素。