怎么会?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)
    Debug.Print pDisp.Name, URL    
End SubpDisp 实际上是一个 WebBrowser 对象。

解决方案 »

  1.   

    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)
    MsgBox URL
    End Sub
    可以执行啊
      

  2.   

    pDisp 是 Nothing!!!!
    跟踪调试,这个事件根本就没有被执行!!!
    为什么?我的机器是Win2000,有关系??不可能吧?
      

  3.   

    当然链接的target为default的当然是可以的,但是,如果Target为_blank呢???
    因为我不想弹出窗口(就调出IE了!!!),尽量控制在自己的VB程序中。
      

  4.   

    你是想在IE中得到连接的URL,还是在自己的程序中?
      

  5.   

    我自己的程序调入任意的html页,点击连接前得到URL以便决定是不是要开新窗口,
    怎样开新窗口。
      

  6.   

    点击链接后,如果链接原本的 Target为_blank 的话就比较麻烦了。因为这时并不
    引发 BeforeNavigate2 事件而是引发 NewWindow2 事件。而该事件只能决定是否
    弹出新窗口。需要利用MSHTML修改链接。
      

  7.   

    我找到的解决办法是更改文档中的链接特性,首先在工程中加入应用 Microsoft object HTML Library
    然后代码:
    Private Sub Command1_Click()
        WebBrowser1.Navigate "http://www.applevb.com"
    End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Dim vDoc, vtag As Object
        
        Set xobj = pDisp
        Set vDoc = xobj.Document
        
        For i = 0 To vDoc.All.length - 1
            If UCase(vDoc.All(i).tagName) = "A" Then
                Set vtag = vDoc.All(i)
                
                vtag.Target = "_self"
            End If
        Next i
    End Sub注意,上面的代码需要文档全部下载完毕后才生效。
      

  8.   

    不会吧,如果是多Frame的页框呢?