如何在程序中控制WebBrowser控件里面的提交按钮

解决方案 »

  1.   

    对编写脚本熟悉的读者都知道页面中可以添加脚本响应元素的事件,例如超链接的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”按钮。程序就会弹出消息框提示“你点击了按钮.” www.applevb.com
      

  2.   

    使用 brwWebBrowser_CommandStateChange 来控制
    s1 = brwWebBrowser.Document.activeelement.defaultvalue
      

  3.   

    to:pandengzhe(攀登者)
    不能实现,点击Webbrowser中的“Click this button”按钮,没有反应
    疑问1,为什么可以
      WebBrowser1.Document.All("btnMyButton").onclick = cfForward 
    疑问2,
      clsForward.My_Default_Method什么时候被调用?
      好像没有被调用吧?
      由此觉得,点击Webbrowser中的“Click this button”按钮,没有反应,是正常的
      

  4.   

    pandengzhe(攀登者)引用的是我的文章,少了步骤,详细的看:如何在程序中响应webbrowser控件的事件:
    http://expert.csdn.net/Expert/topic/2194/2194134.xml?temp=.7933924
      

  5.   

    完整的实现的方法:
    http://www.csdn.net/develop/read_article.asp?id=16506
      

  6.   

    完整的实现步骤:http://www.csdn.net/develop/read_article.asp?id=16506
      

  7.   

    能否解释一下这句
    WebBrowser1.Document.All("btnMyButton").onclick = cfForward
      

  8.   

    一般Windows下的事件(消息)处理在某种意义上说都是通过回调一个函数或者一段代码来实现的,但是在DHTML中事件处理是通过附加一个自动化对象到事件中来完成的
    WebBrowser1.Document.All("btnMyButton").onclick = cfForward
    就是这样的
      

  9.   

    to : pandengzhe(攀登者)
    不好意思,可能我没解释清楚
    我的意思并不是问如何在VB中响应网页的事件例如按钮的提交
    而是现在我知道这个网页中有这样一个按钮,现在我想用VB控制它自动提交
    谢谢
      

  10.   

    怎么编程把用户名,密码提交到网页上的登录页:
    http://www.applevb.com/qa/qa000257.htm