我想在我的程序中显示图片广告,我使用网络浏览器工具并发布链接广告。我想在用户的默认浏览器中打开广告链接。
在网络浏览器“网址”中,我使用:“http://name.com/ads.html#num1”
这个“num1”是:
<div id="num1">
<a href="http://google.com" target="_blank">
<img src="img/num1.png" />
</a>
</div>
我需要在默认浏览器中打开此链接。
答案 0 :(得分:1)
我知道这已经很久了 扩展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""")
答案 1 :(得分:0)
您可以使用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>