net里的webbrowser,怎么准确获取弹出窗口的网址,并在自己的新
vb.net吧
全部回复
仅看楼主
level 13
xxgyongheng 楼主
.net里的webbrowser,如何准确获取弹出窗口的网址,并在自己的新窗口中继承打开。
Private Sub Web1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Web1.NewWindow
Dim NewURL As String = CType(sender, Windows.Forms.WebBrowser).StatusText
Dim myfrm As New FormWeb
e.Cancel = True
myfrm.Show()
myfrm.Web1.Navigate(NewURL)
End Sub
这段代码是我之前用的,对于普通文字链接是可以正确弹出网页,但对于网页内用按钮弹出,或是javascript弹出的,就无法获取
正确的
弹出网址。或者说是没有继承性,若是防盗链的网站用navigate直接打开新网址估计也会出错。
请问还有什么更规范的写法或办法可以解决这问题,实现类似于一些腾讯TT第三方的浏览器。
注意,我用的是.net里自带的那个Webbrowser,而不是以前6.0里那个axWebbrowser,它俩提供的方法完全不同。后者好象是可以用ppdisp实现,但我希望得到前者的解答。望指教!
2017年05月13日 01点05分 1
level 10
.NET默认的WebBrowser封装得并不完美,用下面这个就可以了
http://note.youdao.com/share/?id=a942e6f1346ef7714866cccdd9f7a1fc#/F132FC9AC6A346B69B54B97958279EB1
2017年05月13日 19点05分 2
怎么用?我添加了BeforeNewWindow,但是新打开的页面还是不能继承已经登录的用户,跟请除了用户信息一样需要重新登录。
2017年05月13日 22点05分
Private Sub WebBrowser1_BeforeNewWindow(sender As Object, e As WebBrowserExt.NavEventArgsExt) Handles WebBrowser1.BeforeNewWindow WebBrowser1.Navigate(e.Url) e.Cancel = True End Sub
2017年05月13日 22点05分
@xxgyongheng 新建一个类,然后把代码复制进去,按F5执行以下,之后可以在工具栏里找到 WebBrowserEx 这个控件,用它就行了
2017年05月15日 13点05分
@二笔青年🐷 谢谢。已经用上了,但是仍然不能继承。
2017年05月15日 23点05分
1