【求】vb.net中webbrowser新窗口打开链接,保留来路的问题
是这样的 我软件上有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中打开,但是 我从流量统计工具里面看到的来源 不是 从搜索词过来的,而是直接输入网址的,这个是怎么回事??要如何解决 让它 是从百度搜索词过来的???? --------------------编程问答-------------------- 很明显,因为你不是自动跳过去的,而是Navigate过去的。所有的Navigate都相当于你在浏览器直接输网址访问。
当然,别问我,我也仅知道这些。 --------------------编程问答-------------------- 有谁知道 这个怎么解决呢? 以前VB的 让新窗口链接 在另一个 webbrowser打开的 方法 不是像VB.NET这样的,就可以统计到来路的,,,VB.NET的反而不行 真是太垃圾了 哎 --------------------编程问答-------------------- 我自己在网上找了,有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中加入的那一句有误
大家能不能帮帮忙啊,看看 第二个方法怎么解决 怎么会出现这样????
补充:.NET技术 , VB.NET