传统的IE浏览器,虽然IE已经过时,但是好在操作系统提供,我们开发的软件可以不附带任何东西,显示传统的网页,还是非常不错的。

显示网页
- 设置网址
WebBrowser1.Navigate("http://www.yfvb.com")
- 本地网页
WebBrowser1.Navigate("file:///X:/index.html")
- 直接设置网页代码
WebBrowser1.Navigate "about:blank" ’先清空网页
AfxDoEvents ‘IE 是多线程,需要等待一个消息周期,让网页清空生效
Dim bb As String
bb = "<html>" & vbCrLf & _
" <head>" & vbCrLf & _
" <title>网页标题 </title>" & vbCrLf & _
" <body>" & vbCrLf & _
" 网页显示内容" & vbCrLf & _
" </body>" & vbCrLf & _
"</html>" & vbCrLf & _
WebBrowser1.WriteHtml(bb) '显示此内容
获取网页文本框输入的内容
比方,网页中有一个文本框,用户输入了文字,那么我们如何获取输入的文字呢?
网页中的代码
<html>
<body>
<input type="text" id="myInput">
</body>
</html>
我们VFB里的获取代码
Print WebBrowser1.GetElementValueById("myInput")
让网页执行JS代码
可以让浏览器执行JS代码,实现软件和浏览器交互。
WebBrowser1.RunJs("这里是JS的代码")
响应浏览器操作
- 导航之前事件,可以先确定网址,然后由你决定是否开启这个网址
Sub Form1_WebBrowser1_BeforeNavigate2(ByRef pWebCtx As CWebCtx, ByRef pdisp As IDispatch, ByRef Url As Variant, ByRef Flags As Variant, ByRef TargetFrameName As Variant, ByRef PostData As Variant, ByRef Headers As Variant, ByRef pbCancel As Variant_BOOL)
End Sub
- 弹出新网页时,可以由你决定是否弹出,或同个网页打开
Sub Form1_WebBrowser1_NewWindow3(ByRef pWebCtx As CWebCtx,ppDisp As IDispatch Ptr Ptr,ByRef pbCancel As Variant_BOOL,dwFlags As ULong,ByRef pwszUrlContext As WString,ByRef pwszUrl As WString)
End Sub
比方,浏览器里有一个按钮,点击按钮,这里可以获取到按钮点击。网页中按钮代码为
<a href="按钮1" target="_blank">按钮文字</a>
事件中:
Sub Form1_WebBrowser1_NewWindow3(ByRef pWebCtx As CWebCtx,ppDisp As IDispatch Ptr Ptr,ByRef pbCancel As Variant_BOOL,dwFlags As ULong,ByRef pwszUrlContext As WString,ByRef pwszUrl As WString)
If pwszUrl = "按钮1" Then
这里执行点击按钮后要执行的代码
pbCancel = VARIANT_TRUE
End If
End Sub
浏览器的功能非常多,我只是稍微知道一点皮毛,里面的事件和属性非常多,需要更深入的,只能自己研究了。
其它常用属性
WebBrowser1.Refresh 刷新网页
WebBrowser1.GoBack 后退
WebBrowser1.GoForward 向前
评论一下?