在vb中加入了webbrowser控件,通过控件访问网站,但是当在网页的链接中使用新窗口打开页面时,就会自动调用IE打开一个新的页面,现在我想实现点击“新窗口打开”的时候,将这个新窗口的URL捕获到,然后利用程序调用一个浏览器页面(自己编写的浏览器)来打开这个页面。该如何实现这个功能??
例如在浏览baidu的时候,所有的链接都是通过新窗口打开的。要实现的是,在点击链接的时候,能在自己程序中调用新窗口来打开这个地址,而不是调用IE来打开。希望各位高手来指教,分不购可以加。

解决方案 »

  1.   

    如果webbrowser1所在窗体为form1 则可在WebBrowser1_NewWindow2中加如下代码:
    Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
    On Error Resume Next
    Dim frmWB As Form1
    Set frmWB = New Form1
    frmWB.WebBrowser1.RegisterAsBrowser = True
    Set ppDisp = frmWB.WebBrowser1.Object
    frmWB.Visible = True
    End Sub
    两窗体可能通过public变量进行数据交换.
      

  2.   

    http://support.microsoft.com/kb/184876
      

  3.   

    再加入以下事件,就可以得出新開網頁的地址,在程序中可以用一變量來記錄是不是新網頁(這一點自己解決^_^)
    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 URL
    End Sub我是現抄現賣,資料來自:http://community.csdn.net/Expert/topic/4272/4272645.xml?temp=.1589929
      

  4.   

    to: chenmaohua111() 
    frmWB.WebBrowser1.RegisterAsBrowser = True运行到这句就出错了
      

  5.   

    to: chenmaohua111() 
    sorry,刚才的测试有错误,这次通过了。谢谢
    但是现在只是解决了打开新窗口的时候用的是程序自己的页面,URL怎么传递啊还有就是,在网页中,鼠标指向链接的时候,下面的状态栏就能显示出这个链接的URL,这个事件怎么捕获的?谢谢楼上各位兄弟,大家辛苦了