当前位置:编程学习 > C#/ASP.NET >>

【求】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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,