控制網頁的FORMS行為(收藏)

發表于:2007-07-01來源:作者:點擊數: 標簽:
控制網頁的FORMS行為 Private Sub Command2_Click() With WebBrowser1.Document.Forms(0) .c2.Checked = 1 .r1(1).Checked = 1 End With End Sub Private Sub Command2_Click() With WebBrowser1.Document.Forms(0) .d1.Options(1).Selected = 1 End With En

控制網頁的FORMS行為

Private Sub Command2_Click()
    With WebBrowser1.Document.Forms(0)
        .c2.Checked = 1
        .r1(1).Checked = 1
    End With
End Sub


Private Sub Command2_Click()
    With WebBrowser1.Document.Forms(0)
        .d1.Options(1).Selected = 1
    End With
End Sub

web.Document.getElementsByName("D1").Item(0).selectedIndex = 1

==============================================
<input type="radio" value="n" checked name="notecome">普通
<input type="radio" value="c" name="notecome">原創
<input type="radio" value="z" name="notecome">轉帖
<input type="button" value="發送提交" name="button"

比如一個網頁里有如上代碼
我想選擇原創
webbrowser中怎么寫


Private Sub Command1_Click()
    WebBrowser1.Navigate "c:\ggg.html"
End Sub

Private Sub Command2_Click()
    Dim x
   
    For Each x In WebBrowser1.Document.All("notecome")
        If x.Value = "c" Then
            x.Checked = True
        End If
    Next
End Sub

============================================================================================
假設你的HTML代碼如下:

<html>
<script>
  function abcd(){
    alert("haha");
    return false;
  }
</script>

<body>
  <a id = ´xxx´ href=# onclick="abcd()">ggggg</a>
</body>
</html>

VB代碼如下:
Private Sub Command1_Click()
    WebBrowser1.Navigate ""
End Sub

Private Sub Command2_Click()
    Dim a, b
    Dim d As IHTMLDocument2
   
    For Each a In WebBrowser1.Document.All
        Debug.Print a.tagName
        If (a.tagName = "SCRIPT") Then

        End If
        If (a.tagName = "A") Then
            If a.Id = "xxx" Then
                a.FireEvent ("onclick")
            End If
        End If
    Next

點擊Command1瀏覽這個網頁,點擊Command2運行其中的腳本abcd。


==============================================

怎么編程把用戶名,密碼提交到網頁上的登錄頁?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假設你的HTML頁面表單代碼如下:
<form method="POST" action="">
  <p>請填寫下面表單注冊(*項為必添項)</p>
  <p>*姓名<input type="text" name="Name" size="20"></p>
  <p>*昵稱<input type="text" name="NickName" size="20"></p>
  <p>電子郵件<input type="text" name="EMail" size="20"></p>
  <p>*密碼<input type="text" name="Password" size="20"></p>
  <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p>
</form>
注意其中元素的type、Name、value屬性。然后VB中的代碼如下:
Private Sub Command1_Click()
    WebBrowser1.Navigate ""
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim vDoc, vTag
    Dim i As Integer
     
    Set vDoc = WebBrowser1.Document
    List1.Clear
    For i = 0 To vDoc.All.length - 1
        If UCase(vDoc.All(i).tagName) = "INPUT" Then
            Set vTag = vDoc.All(i)
            If vTag.Type = "text" Or vTag.Type = "password" Then
                List1.AddItem vTag.Name
                Select Case vTag.Name
                    Case "Name"
                        vTag.Value = "IMGod"
                    Case "NickName"
                        vTag.Value = "IMGod"
                    Case "Password"
                        vTag.Value = "IMGodpass"
                    Case "EMail"
                        vTag.Value = ""
                End Select
            ElseIf vTag.Type = "submit" Then
                vTag.Click
            End If
        End If
    Next i
End Sub
點擊Command1就可以自動填表并提交了。


=====================================================================================
調用forms下的Submit控件的Click事件,我會做,但我不想這么做.

有沒有辦法直接調用類似于:web1.document.forms.submit,這句語句我怎么寫都不成功
是這個
Webbrowser1.document.formName.submit()

不能用,formname為form1所以我調用Webbrowser1.document.form1.submit
出錯類型:對象不支持該屬性或方法,
然后調用Webbrowser1.document.forms(0).submit()
出錯類型同上
Private Sub Command1_Click()
    WebBrowser1.Navigate ""
End Sub

Private Sub Command2_Click()
    WebBrowser1.Document.All("Form1").submit
End Sub
<form name="form1" method="post" action="aa.asp">
......
<input name="reset" type="reset" vlaue="reset" class="button">
</form>
我本想把reset的type改成submit 再提交,可出錯,type是只讀屬性,不能修改,我只要有辦法把這頁面遞交出去就行,當然,用POST也不行,參數太多,組合方式太多


你用下面的代碼試一下你的頁面:


Private Sub Command1_Click()
    WebBrowser1.Navigate ""
End Sub

Private Sub Command2_Click()
    Dim x
   
    On Error Resume Next
    For Each x In WebBrowser1.Document.All
        List1.AddItem x.Name
    Next
End Sub

看看在List1里面列出來的頁面元素的名字有沒有Form1
找到原因了,你的頁面是這樣的:
<input language="javascript" onclick="if (typeof(Page_ClientValidate) == ´function´) Page_ClientValidate(); " name="Submit1" id="Submit1" type="submit" value="Submit" />
你把name="Submit1" 改成name="Submit"肯定就不會成功了,很不幸的是我要提交的頁面中就有這樣一句,現在可有辦法解決嗎???

=======================================================================
使用WebBrowser_V1接受消息

Private WithEvents WebMessage As WebBrowser_V1

Private Sub Form_Load()
  Set WebMessage = WebBrowser1.Object
End Sub

Private Sub WebMessage_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)

´這里有Flags變量可以取得窗體應有的狀態

End Sub

具體值需要你自己去試試看。對象瀏覽器里面沒有

=======================================================================================================

通過下面的方法遍歷頁面中的IFrame:

Sub EnumFrames(ByVal wb As WebBrowser)
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVw.IWebBrowser2

   Set pContainer = wb.Object.Document
  
   ´ Get an enumerator for the frames
   If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
  
      Set pContainer = Nothing
     
      ´ Enumerate and refresh all the frames
      Do While pEnumerator.Next(1, pUnk) = 0
        
         On Error Resume Next
        
         ´ Clear errors
         Err.Clear
        
         ´ Get the IWebBrowser2 interface
         Set pBrowser = pUnk
  
         If Err.Number = 0 Then
            Debug.Print "Frame: " & pBrowser.LocationURL
         End If
  
      Loop
     
      Set pEnumerator = Nothing
  
   End If
  
End Sub


=======================================================================================


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97