【问题标题】:vb.net WebBrowser Open link in default browservb.net WebBrowser 在默认浏览器中打开链接
【发布时间】:2013-11-21 12:07:33
【问题描述】:

我想在我的程序中显示图片广告,我使用网络浏览器工具并放了一个链接广告。我想在用户的默认浏览器中打开广告链接。

在网络浏览器“URL”中,我使用:“http://name.com/ads.html#num1

这个“num1”是:

<div id="num1">
    <a href="http://google.com" target="_blank"> 
        <img src="img/num1.png" />
    </a>
</div>

我需要在默认浏览器中打开此链接。

【问题讨论】:

  • 我假设点击链接会在 IE 中打开它。即使它不是 default 浏览器。您是否有某些特定原因要避免在 IE 中打开它?
  • html页面是你管理的吗?您可以编辑它还是第三方页面?
  • @Andrea 是的,由我管理
  • @inquisitive 我们在 IE 中遇到 css3 和 jquery 的问题

标签: vb.net webbrowser-control


【解决方案1】:

您可以使用 WebBrowser 的 Navigating 事件并尝试取消将其重定向到默认浏览器的事件。

问题是每次在 WebBrowser 控件中加载网页时都会发生此事件。为避免对每个 navigating 事件进行重定向,您可以过滤目标网址(如果这是您可以接受的解决方案):

Private Sub WebBrowser1_Navigating(sender As Object, e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    If e.Url.ToString = "http://google.com/" Then
        Process.Start(e.Url.ToString)
        e.Cancel = True
    End If
End Sub

为了使这个解决方案起作用,您还必须将 html 页面切换目标从 _blank 更改为 _self 否则不会触发 Navigating 错误:

<a href="http://google.com" target="_self"> 
    <img src="img/num1.png" />
</a>

【讨论】:

  • 感谢ِAndrea,但我需要编辑外部 html 文件中的链接,因为我想每个月都更改此广告。如果我们可以更改:“如果 e.Url.ToString =” 为“如果链接包含 google.com”?
【解决方案2】:

我知道这已经很久了,但是 扩展 Andrea 的答案,我以这种方式使其适用于所有 URL:

Private docComplete As Boolean = False
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        docComplete = True
    End Sub

Private Sub WebBrowser1_Navigating(sender As Object, e As WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    If docComplete Then
        ' Process.Start(e.Url.ToString)
        openULR(e.Url.ToString) 'start process by a default browser
        e.Cancel = True
    End If
End Sub

只是为了确保链接触发事件,我将 html 中的 _blank 标签替换为 _self,如下所示:

 html = Replace(html, "target=""_blank""", "target=""_self""")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 2014-09-30
    • 2012-06-11
    • 2012-08-11
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多