就是FRAMSET下还套FRAMESET还套FRAMSET,并且FRAMESET在上一个FRAMSET里的位置还有变化,有的前所有的FRAME前面,有的在FRAME集中间,怎么写类似webbrowser1.dlcument.all(i)的句子??试了下:
WebBrowser1.Document.frames(0).frames(0).frames(0).Forms (0) .getElementById(myid).click 
这句,运行时提示:
实时错误‘-2147352567(8002009)’ 
发生意外 
大家指教下哈

解决方案 »

  1.   

    每个frame里面的页面完成装载时都会触发一次NavigateComplete,DocumentComplete等事件,你可以在DocumentComplete事件里根据传入的URL参数判断目前操作的是哪个frame,然后通过DOM对象操作里面的元素。
      

  2.   

    DOM,好象很高深哦
    郁闷,一点儿也不会DOM
      

  3.   

    能过对本论坛的操作试验:(本论坛只有一个FRAMESET,下有二个FRAME)
     WebBrowser1.Document.frames.length 这个可以查出FRAME有几个(现仅限于一层FRAMESET)但是却不支持    WebBrowser1.Document.frames(i)
      

  4.   

    四楼是我错了,写时多了个字母
    For i = 0 To WebBrowser1.Document.frames.length - 1
            Set objDoc = WebBrowser1.Document.frames(i)
             For j = 0 To objDoc.All.length - 1
             If objDoc.All(j).herf = "http://passport.csdn.net/UserLogin.aspx?from=http://community.csdn.net/"  Then
                 objDoc.All(j).Click
                 End If
               Next
            Next这个objdoc.all.length 怎么不被持???
      

  5.   

    出于安全考虑,跨域的框架内容是禁止访问的。DOM(Document Object Model)不是什么神奇玩意儿,它就是你正在用的东西
      

  6.   

    那么这个代码怎么是正确的,怎么能用rivate Sub Command2_Click()
        Dim wbDoc As HTMLDocument
        Dim blnClicked As Boolean, MyId as String
        MyId = "A_ID_702"
        frmDenied = 0
        Set wbDoc = WebBrowser1.Document
        If (Not wbDoc Is Nothing) And WebBrowser1.LocationURL <> "about:blank" Then
            blnClicked = ClickTheId(wbDoc, MyId)
            If blnClicked Then
                MsgBox "The element was clicked.", , "Result"
            Else
                MsgBox "The element with the specified ID was not found." & _
                        IIf(frmDenied, "This could be caused by denied access." & _
                        vbCrLf & "Access to " & frmDenied & " frames was denied!", ""), vbExclamation, "Result"
            End If
        End If
    End SubFunction ClickTheId(TheDocument As HTMLDocument, TheId As String) As Boolean
        Dim ElWithId As Object, oFrame As IHTMLWindow2, oDoc As HTMLDocument, i As Long, bClicked As Boolean
        Set ElWithId = TheDocument.getElementById(TheId)
        If Not ElWithId Is Nothing Then
            On Error Resume Next
            ElWithId.focus
            On Error GoTo 0
            ElWithId.Click
            Set ElWithId = Nothing
            ClickTheId = True
        ElseIf TheDocument.frames.length > 0 Then
            For i = 0 To TheDocument.frames.length - 1
                Set oFrame = TheDocument.frames(i)
                On Error Resume Next
                Set oDoc = oFrame.Document
                If Err.Number = 70 Then
                    frmDenied = frmDenied + 1
                    MsgBox "Error # " & Err.Number & ", " & Err.Description & vbCrLf & _
                                    "Source: " & Err.Source, , "Error"
                Else
                    bClicked = ClickTheId(oDoc, TheId)
                    If bClicked Then ClickTheId = True: Exit Function
                End If
            Next i
            ClickTheId = False
        Else
            ClickTheId = False
        End If
    End Function
      

  7.   

    还有在网上看到有人回复这个可以使用,我写上却提示不可:
    Webbrowser1.document.getelementbyid("id").document.body.innertxt
      

  8.   

    URL参数?是不是网址栏里显示的?好象和你说的不一样哦