注册 登录
编程论坛 VB6论坛

webbrowser制作多标签浏览器问题

luguang911 发布于 2022-01-14 16:17, 1860 次点击

想做一个浏览器,但是找遍了全网都没有教程,跪求大佬帮我写个我学习下,感谢了!
浏览器如图 有前进,后退,刷新,首页(点击后跳转到网址A),官网(点击后跳转到网址B)
下面的webbrowser框初始网站随便填一个,如果浏览的网页链接是在新页面打开,那么则自动在浏览器上面添加一个网页(类似360和chrome的多标签一样)双击或者点击每个页面的关闭按钮可关闭当前网页,谢谢啦,跪求源码
只有本站会员才能查看附件,请 登录
5 回复
#2
wds12022-01-14 20:52
只有本站会员才能查看附件,请 登录

附件是简单的网页控制的程序。
实现功能:
1、打开默认网页
2、点击官网、首页都会切换
3、网页点击链接,会在同一窗口打开信链接。这样之后才会有回退,前进控制
4、如果在新窗口打开链接,那么就需要动态生成webbrowser空间数组,还需要设置Webbrowser1_NewWindow2的事件

【控制新链接在同一窗口打开的代码】
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
  Cancel = True
  WebBrowser1.Navigate2 WebBrowser1.Document.activeElement.href
End Sub
【控制新链接在第二个窗口打开的代码】【如果这样要打开N个,那么就需要建立N个web和N个代开的方式,得用控件数组】
Private Sub Webbrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
  Set ppDisp = webbrowser2.Object
  webbrowser2.ZOrder
End Sub

#3
独木星空2022-01-15 04:09
回复 2楼 wds1
学习了。vb6我还是接触的较少。
#4
风吹过b2022-01-15 11:10
我是使用的 多窗口,所以我是针对窗口上的 控件进行刷新,参考一下吧。都是关键找到对应的webbrow 控件。
程序代码:

'以下代码都是在 MDIForm中的
Private Sub Command2_Click()
On Error Resume Next
    If Me.ActiveForm.Name = "Form1" Then
        Me.ActiveForm.WebBrowser1.GoBack        '
    End If
End Sub

Private Sub Command4_Click()
On Error Resume Next
    If Me.ActiveForm.Name = "Form1" Then
        Me.ActiveForm.WebBrowser1.GoForward        '
    End If
End Sub

Private Sub Command5_Click()
On Error Resume Next
    If Me.ActiveForm.Name = "Form1" Then
        Me.ActiveForm.WebBrowser1.Refresh        '
    End If
End Sub

Private Sub Command1_Click()       '新建
Dim fr As New Form1
fr.WebBrowser1.Navigate HomeUrl    '自动打开首页

fr.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight     '窗口自动最大,不是最大化
End Sub


还有啥?
转到,代码在窗体 FORM1 中的
Private Sub Command1_Click()
    WebBrowser1.Navigate2 Text1.Text
End Sub


链接要求新开窗口?也在FORM1中
程序代码:
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
On Error Resume Next
Dim fr As New Form1
fr.Show
Set ppDisp = fr.WebBrowser1.Object
fr.Move 0, 0, MDIForm1.ScaleWidth, MDIForm1.ScaleHeight
End Sub


Form1的过程还有
程序代码:
Private Sub WebBrowser1_OnQuit()
'浏览器退出
Unload Me
End Sub

Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)
'提示
If Len(Text) > 0 Then
    Label1.Caption = Text
Else
    Label1.Caption = "完成"
End If
End Sub

Private Sub WebBrowser1_WindowClosing(ByVal IsChildWindow As Boolean, Cancel As Boolean)
'浏览器要求关闭
Unload Me
End Sub


这二个,好像是防止弹出一个什么脚本报错的窗口,忘了。2014年写的代码。
程序代码:
Private Sub WebBrowser1_DownloadBegin()
WebBrowser1.Silent = True
End Sub

Private Sub WebBrowser1_DownloadComplete()
WebBrowser1.Silent = True
End Sub
#5
吹水佬2022-01-15 11:13
webbrowser做多标签浏览肯定是可以,但要考虑:
1、用页框控件做标签页面,如果用多线程,webbrowser内核是否支持多线程
2、webbrowser内核不支持多线程时,只能考虑多进程(现在的主流浏览器大都是)
#6
幼红月2022-01-19 09:45
已拿资源,留爪
1