VB的WebBrowser控件加载网页问题

zcyzzzm 2008-03-07 01:31:57
VB中WebBrowser控件加载网页问题

请问怎么才能让WebBrowser将网址内容进行替换后再加载,就是说原始页不是先加载再获得内容替换

举个例子,比如准备加载:http://www.2ppt.com/ 我想将http://www.2ppt.com/源代码中的js全部替换后再进行加载,这样不用先运行http://www.2ppt.com/
...全文
661 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcyzzzm 2008-03-24
  • 打赏
  • 举报
回复
请问有办法解决一下吗?
zcyzzzm 2008-03-19
  • 打赏
  • 举报
回复
感谢回答,不过还是有问题。

就是获得的Me.WebBrowser1.LocationURL值不是原来的网址了,是空网址!如果有统计器统计将不能统计该网址,受了使用上的限制!!不知道能不能发送参数进行处理!
lyserver 2008-03-15
  • 打赏
  • 举报
回复
可以实现,思路如下:
1、使用两个控件,一个是WebBrowser控件,一个是Inet控件。
2、在WebBrowser控件的BeforeNavigate2事件里,先获得目标URL,当URL为“About:blank”时,不予处理,否则用Inet控件取回网页内容,然后将WebBrowser控件导航至“About:blank”。

主要代码如下:

Private Sub Inet1_StateChanged(ByVal State As Integer)
If State = icResponseCompleted Then
Dim l As Long
Dim sHtml As String, sBuff As String

l = 1
Do While l > 0
sBuff = Me.Inet1.GetChunk(1024, icString)
If Len(sBuff) = 0 Then Exit Do
sHtml = sHtml & sBuff
DoEvents
DoEvents
Loop
'替换JavaScript的代码在此插入
Me.WebBrowser1.Document.Write sHtml
End If
End Sub

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)
Dim b() As Byte
Dim s As String

If UCase(URL) = "ABOUT:BLANK" Then
Exit Sub
Else
Cancel = True
Me.WebBrowser1.Navigate2 "About:Blank"
End If
Me.Inet1.Cancel
Me.Inet1.Protocol = icHTTP
Me.Inet1.URL = URL

Me.Inet1.Execute (URL)

End Sub

cso 2008-03-15
  • 打赏
  • 举报
回复
Custom WebBrowser control
http://www.mvps.org/emorcillo/download/vb6/ctl_wb.msi

可以用接口,VB实现起来比较麻烦,不推荐
zcyzzzm 2008-03-15
  • 打赏
  • 举报
回复
up
zcyzzzm 2008-03-09
  • 打赏
  • 举报
回复
up

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧