加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VB与网页交互

(2012-09-08 21:52:02)
标签:

it

分类: VB编程笔记
1.VB调JS函数

VB代码,首先建立一个新工程,在Form1中加入一个Webbrowser控件,然后在Form1中加入以下代码:
Private Sub Form_Load()
    WebBrowser1.Navigate2 ("http://localhost/test.html") '调试时,留意缓存的问题
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 
   pDisp.Document.parentWindow.execScript "test()"    
End Sub

test.html页面代码:


'===========================================================================================

2.VB响应网页按钮事件
VB代码,首先建立一个新工程,在Form1中加入一个Webbrowser控件,然后在Form1中加入以下代码:
Private Sub Form_Load()
    WebBrowser1.Navigate2 ("http://localhost/test.html?" & Now())
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim cfForward As clsForward
    Set cfForward = New clsForward
    cfForward.Set_Destination Me, "test"
    pDisp.Document.All("btCallVB").onClick = cfForward 
End Sub

Public Sub test()
    MsgBox "VB知道:你点击了网页上的按钮!"
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

第三步,把My_Default_Method设置为默认过程,方法是:在clsForward模块的代码窗口中将光标定位到My_Default_Method中,然后选择菜单 Tools | Procedure Attributes。然后在弹出窗口中点击advanced按钮,然后在procedure id下拉框中选择[Default]。

test.html页面代码:


'===========================================================================================
还有一种响应网页的方法,就是监判断网页当前的链接地址,不同的链接地址触发不同的函数。
如:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
   If URL = "http://www.baidu.com/" Then
        MsgBox ("WebBrowser1_BeforeNavigate2")
   End If
End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有