控制网页的FORMS行为(收藏)

    技术2022-05-11  101

    控制网页的FORMS行为

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

    Private Sub Command2_Click()    With WebBrowser1.Document.Forms(0)        .d1.Options(1).Selected = 1    End WithEnd 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    NextEnd Sub

    ============================================================================================假设你的HTML代码如下:

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

    <body>  <a id = 'xxx' href=# οnclick="abcd()">ggggg</a></body></html>

    VB代码如下:Private Sub Command1_Click()    WebBrowser1.Navigate "http://www.applevb.com/script_test.html"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="http://chen/dll/chat/chatmain.exe/RegUser">  <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 "http://chen/chat/newuser.htm"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 = "IMGod@paradise.com"                End Select            ElseIf vTag.Type = "submit" Then                vTag.Click            End If        End If    Next iEnd 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 "http://localhost/webapplication2/MyLogonPage.aspx"End Sub

    Private Sub Command2_Click()    WebBrowser1.Document.All("Form1").submitEnd 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 "http://oakhome.xicp.net/webapplication2/MyLogonPage.aspx"End Sub

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

    看看在List1里面列出来的页面元素的名字有没有Form1找到原因了,你的页面是这样的:<input language="javascript" οnclick="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.ObjectEnd 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.IOleContainerDim pEnumerator As olelib.IEnumUnknownDim pUnk As olelib.IUnknownDim 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

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


    最新回复(0)