【求】vb.net中webbrowser新窗口打开链接,保留来路的问题

fuziy 2012-10-22 12:23:43
是这样的 我软件上有2个webbwowser控件,名称分别是wbw1 wbw2

我在wbw1中打开一个网页,点击链接,如果是要在新窗口打开的链接,我不想让它在外部的IE中打开,而想让它在wbw2中打开


我是这样实现的

Private Sub wbw1_NewWindow1(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles wbw1.NewWindow
If boolNewOpen = True Then
e.Cancel = True
wbw2.Navigate(wbw1.Document.ActiveElement.GetAttribute("href"))
End If
End Sub



这样的话 倒是没问题


但现在的问题是 比如 我在wbw1中打开 的是 百度首页 搜索一个关键词 然后 点击我的网站自然排名,我的网站可以在wbw2中打开,但是 我从流量统计工具里面看到的来源 不是 从搜索词过来的,而是直接输入网址的,这个是怎么回事??要如何解决 让它 是从百度搜索词过来的????
...全文
340 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuziy 2012-10-23
  • 打赏
  • 举报
回复
有谁知道 这个怎么解决呢? 以前VB的 让新窗口链接 在另一个 webbrowser打开的 方法 不是像VB.NET这样的,就可以统计到来路的,,,VB.NET的反而不行 真是太垃圾了 哎
fuziy 2012-10-23
  • 打赏
  • 举报
回复
我自己在网上找了,有2种解决办法吧,但是其中一种比较简单的,就是郁闷不知道怎么解决

一、axwebbrowser控件和webbrowser控件组合,详见 http://www.hywz123.com/Program/21.html

这种方法是可以,但是由于引用了dll文件,C:/Windows/System32/ieframe.dll,这文件挺大,而且打包的时候,打包不了,只能把它排除,但排除后我害怕会不会有些电脑装了不行呢?

二、利用webbrowser控件,引用 Microsoft Internet Control

1、工程中引用 Microsoft Internet Control

2、在form_load加入:

AddHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).NewWindow2, AddressOf NewWindow2

这句中涉及到几个函数,应该都很好懂,webbrowser1就是form中的webbrowser控件

3、增加一个过程:

Private Sub NewWindow2(ByRef ppDisp As Object, ByRef Cancel As Boolean)
Dim nf As New PopupWin
Dim xweb As New SHDocVw.WebBrowser
nf.WebBrowser1.Navigate("about:blank")
xweb = nf.WebBrowser1.ActiveXInstance
ppDisp = xweb
nf.Show()
' Cancel = True
End Sub

但是这个没成功,提示form_load中加入的那一句有误



大家能不能帮帮忙啊,看看 第二个方法怎么解决 怎么会出现这样????
greatbody 2012-10-22
  • 打赏
  • 举报
回复
很明显,因为你不是自动跳过去的,而是Navigate过去的。所有的Navigate都相当于你在浏览器直接输网址访问。

当然,别问我,我也仅知道这些。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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