VB怎样获得鼠标处的超级连接呢?
  在WebBrowser控件中有这样一个事件:StatusTextChange(index As Integer, ByVal Text As String)
  它的Text参数正是鼠标处的超级连接,但问题是如果我的浏览器正忙的时候他的Text并不会及时更新。
  我又尝试用Navigate2他里面也有个URL参数,但是这个URL与文字或图片中的超级连接还是有不同的.
  现在我的要求是,点击某个带有连接的文字或图片时我要先得到这个连接地址,然后去打开网页,上面的两个方法
  都不能满足我的要求。
  在这里请高人指点一下.
  

解决方案 »

  1.   

    因为链接不一定都是地址,也可能是一个脚本调用,所以在 BeforeNavigate2() 和 NewWindow2() 事件中获得 URL 比较靠谱。
      

  2.   

    我只知道在RichTextBox中鼠标移至链接时会有消息通知,这时可以处理,不知道WB是否也有类似的消息,你找找WB的资料
      

  3.   

    下面两个方法都是针对点击链接能够在指定WebBrowser中打开的
    而不是有些情况下会在IE中打开一个使用NewWindow2()事件,应该能够解决问题,
    放一个WebBrowse、一个commandbuttonOption ExplicitPrivate Sub Command1_Click()
        WebBrowser1.Navigate "www.baidu.com"
    End SubPrivate Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
        
        '重点是这里,指定 ppDisp 的宿主浏览器
        Set ppDisp = WebBrowser2.Application
        
    End Sub还有一个,使用SHDocVwCtl.WebBrowser_V1类
    放一个WebBrowse、一个commandbuttonOption Explicit'定义浏览器类
    Dim WithEvents Web_V1       As SHDocVwCtl.WebBrowser_V1
    Private Sub Command1_Click()
        WebBrowser1.Navigate "www.baidu.com"
    End SubPrivate Sub Form_Load()
        Set Web_V1 = WebBrowser1.ObjectEnd Sub'捕捉新的链接,在原窗口打开
    Private Sub Web_V1_BeforeNavigate(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Cancel As Boolean)
        Debug.Print "before: " & URL
    End Sub'捕捉新的窗口,在新窗口打开
    Private Sub Web_V1_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)    Processed = True        '停止原来请求的处理
        Debug.Print "new: " & URL
        WebBrowser1.Navigate URL    '仍让基在原窗口打开End Sub
      

  4.   

    微软用的就应该是StatusTextChange事件,不清楚lz只的正忙是什么意思,怎样模拟出那种正忙的效果。我测试是没有任何问题的。
      

  5.   

    这里有一个这样源代码:
    http://www.applevb.com/sourcecode/WebbrowserEx.zip
    这个源代码的效果是:鼠标在网页页面上移动,当鼠标指向超链接时,文本框显示超链接的URL。鼠标指向另一超链接时,文本框显示另一超链接的URL。URL随鼠标指向的超链接而改变。
      

  6.   

    楼上的这个同志提供的连接我下了看了一下同样用的是StatusTextChange事件
      

  7.   

    http://guangzhou.samlong.cn/67/2006428212532863_samlong.rar
    这个肯定不是StatusTextChange