technofantasy(冰儿马甲www.applevb.com) 监视网页事件程序,谁能调试通?
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”按钮。程序就会弹出消息框提示“你点击了按钮.”
问题点数:40、回复次数:4Top
1 楼xm2005(哪有经典代码?)回复于 2005-04-04 18:00:51 得分 1
问“冰儿马甲www.applevb.com”,不是更快吗?Top
2 楼VBDN( PowerBASIC.CN )回复于 2005-04-04 18:06:56 得分 39
你需要将My_Default_Method设置为类clsForward的默认过程。Top
3 楼VBDN( PowerBASIC.CN )回复于 2005-04-04 18:11:33 得分 0
你需要将My_Default_Method设置为类clsForward的缺省过程。设置方法:
1.依次点击菜单[工具]→[过程属性];
2.在弹出的窗口中,“名称”选择“My_Default_Method”;
3.点击“高级”按钮;
4.过程标识符选择“缺省”;
5.点击“缺省”按钮。Top
4 楼114(蝶中蝶)回复于 2005-04-04 18:34:58 得分 0
好!谢谢Top




