WebBrowser控件的常用方法、属性和事件

1. 属性

属性

说明

Application

如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
控件的自动化对象

Parent

返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口

Container

返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同

Document

为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则
Document属性提供对DHTML Object Model的访问途径

TopLevelContainer

返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true

Type

返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返
回Microsoft Word Document

Left

返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离

Top

返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离

Width

返回或设置WebBrowser窗口的宽度,以像素为单位

Height

返回或设置WebBrowser窗口的高度,以像素为单位

LocationName

返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源
是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称

LocationURL

返回WebBrowser当前正在显示的资源的URL

Busy

返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true
就可以使用stop方法来撤销正在执行的访问操作

2. 方法

方法

说明

GoBack

相当于IE的“ 后退 ”按钮,使你在当前历史列表中后退一项

GoForward

相当于IE的“ 前进 ”按钮,使你在当前历史列表中前进一项

GoHome

相当于IE的“ 主页 ”按钮,连接用户默认的主页

GoSearch

相当于IE的“ 搜索 ”按钮,连接用户默认的搜索页面

Navigate

连接到指定的URL

Refresh

刷新当前页面

Refresh2

同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表, 该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 执行简单的刷新,不将 HTTP pragma: no-cache头发送给服务器
REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新
REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用
REFRESH_COMPLETELY 将包含 pragma: no-cache头的请求发送到服务器

Stop

相当于IE的“ 停止 ”按钮,停止当前页面及其内容的载入

3. 事件

Private Events

Description

BeforeNavigate2

导航发生前激发,刷新时不激发

CommandStateChange

当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward 菜单项或按钮

DocumentComplete

当整个文档完成是激发,刷新页面不激发

DownloadBegin

当某项下载操作已经开始后激发,刷新也可激发此事件

DownloadComplete

当某项下载操作已经完成后激发,刷新也可激发此事件

NavigateComplete2

导航完成后激发,刷新时不激发

NewWindow2

在创建新窗口以前激发

OnFullScreen

当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输 入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)

OnMenuBar

改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。 VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏

OnQuit

无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发

OnStatusBar

与OnMenuBar调用方法相同,标示状态栏是否可见。

OnToolBar

调用方法同上,标示工具栏是否可见。

OnVisible

控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数

StatusTextChange

如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏

TitleChange

Title有效或改变时激发

{IHTMLDocument2 方法:}write                 //写入

writeln               //写入并换行

open                  //打开一个流,以收集 document.write 或 document.writeln 的输出

close                 //关闭并输出用 document.open 方法打开的流

clear                 //清空文档中所有元素, 可能暂时不支持

queryCommandSupported //是否支持指定命令

queryCommandEnabled   //指定命令是否有效

queryCommandState     //是否设置了指定命令

queryCommandIndeterm  //指定命令是否处于不确定状态

queryCommandText      //命令

queryCommandValue     //命令值

execCommand           //执行命令

execCommandShowHelp   //命令帮助信息

createElement         //建立元素

elementFromPoint      //指定坐标下的元素

createStyleSheet      //创建一个样式表

{IHTMLDocument2 属性:}

all                   //所有 HTML 元素的集合

images                //所有 image 对象的集合

applets               //所有 applet 对象的集合

links                 //所有 link 对象的集合

forms                 //所有 form 对象的集合

anchors               //所有 anchor 对象的集合

scripts               //所有 script 对象的集合

frames                //所有 frame 对象的集合, 这应该和 window.frames 是一样的

embeds                //所有 embed 对象的集合

plugins               //所有 plugin 对象的集合

styleSheets           //样式表集合

title                 //网页标题

body                  //body 对象

activeElement         //当前具有输入焦点的元素

designMode            //设计模式, 可选值: Inherit On Off

selection             //当前选择

readyState            //页面读取状态: uninitialized、loading、loaded、interactive、completed

linkColor             //链接的颜色

alinkColor            //活动链接的颜色

vlinkColor            //已访问过的链接的颜色

bgColor               //背景颜色

fgColor               //文本颜色

referrer              //返回载入当前页面的页面的 URL

location              //同 window.location

lastModified          //返回文档最后修改的日期和时间

url                   //返回当前文档的 URL

domain                //返回域名

cookie                //返回文档相关的 cookie

expando               //可设置与获取的布尔值, 是否允许扩展

charset               //获取文档的字符集名称

defaultCharset        //获取浏览器默认的字符集名称

mimeType              //文档类型

fileSize              //文档大小, 单位字节, 用字符串表示

fileCreatedDate       //文档建立时间 ???

fileModifiedDate      //文档修改时间 ???

fileUpdatedDate       //文档更新时间 ???

security              //文档安全

protocol              //传输协议

nameProp              //文件标题, 好像同 Title

parentWindow          //父窗口

Script                //

{IHTMLDocument2 事件:}

onhelp                //用 F1 获取帮助时

onclick               //单击时

ondblclick            //双击时

onmousedown           //鼠标点下时

onmouseup             //鼠标抬起时

onmousemove           //鼠标移动时

onmouseover           //鼠标进入时

onmouseout            //鼠标离开时

onkeypress            //按键时

onkeyup               //键按住时

onkeydown             //键抬起时

onreadystatechange    //状态改变时

onrowexit             //当前数据源的数据将要发生变化时

onrowenter            //当前数据源的数据发生变化并且有新的数据时

ondragstart           //开始拖动时

onselectstart         //开始选择时

onbeforeupdate        //更新前

onafterupdate         //更新后

onerrorupdate         //更新错误时

{IHTMLDocument3 方法:}

recalc                //重新获取文档中的全部动态属性

releaseCapture        //释放文档中对象的鼠标捕捉

{IHTMLDocument3 属性:}

createTextNode        //建立文本

attachEvent           //绑定事件

detachEvent           //取消事件绑定

createDocumentFragment//创建新文档

getElementsByName     //返回带有指定 name 的对象集合

getElementById        //返回指定 id 的第一个对象的引用

getElementsByTagName  //返回指定标签的对象集合

documentElement       //获取文档根部节点, 也就是 HTML 节点

uniqueID              //获取对象的唯一标识符

dir                   //

parentDocument        //

enableDownload

baseUrl               //基础地址

{IHTMLDocument3 事件:}

onrowsdelete          //当前数据记录被删除时

onrowsinserted        //当前数据源将要插入新数据时

oncellchange          //当数据来源发生变化时

ondatasetchanged      //数据源发生变化时

ondataavailable       //当数据接收完成时

ondatasetcomplete     //当数据源的全部有效数据读取完毕时

onpropertychange      //改变属性时

oncontextmenu         //当按下鼠标右键出现菜单或通过键盘触发页面菜单时

onstop                //停止或离开时

{IHTMLDocument4 方法:}

focus                 //获得输入焦点

hasFocus              //是否拥有输入焦点

createDocumentFromUrl //下载指定网页并返回其 IHTMLDocument2 接口

CreateEventObject     //生成当使用 fireEvent 方法时用于传递事件相关信息的 event 对象 ???

FireEvent

{IHTMLDocument4 属性:}

createRenderStyle     //建立 IHTMLRenderStyle 接口

namespaces            //

media                 //

URLUnencoded          //获取去除字符编码的 URL

{IHTMLDocument4 事件:}

onselectionchange     //改变选择时

oncontrolselect       //好像是框选时

{IHTMLDocument5 方法:}

createAttribute       //建立指定 name 的属性

createComment         //建立注释

{IHTMLDocument5 属性:}

doctype               //文档类型

implementation_       //获取 IHTMLDOMImplementation 接口

compatMode            //兼容模式, 返回 BackCompat、CSS1Compat 等

{IHTMLDocument5 事件:}

onmousewheel          //旋转鼠标滚动轮时

onfocusin             //获取输入焦点时

onfocusout            //失去输入焦点时

onactivate            //激活时

ondeactivate          //当前对象变为父文档的其他对象时

onbeforeactivate      //onactivate 前

onbeforedeactivate    //ondeactivate 前

这个其实就是HTMLDocument对象接口:

Document 对象集合
all[] 提供对文档中所有 HTML 元素的访问。
anchors[] 返回对文档中所有 Anchor 对象的引用。
applets 返回对文档中所有 Applet 对象的引用。
forms[] 返回对文档中所有 Form 对象引用。
images[] 返回对文档中所有 Image 对象引用。
links[] 返回对文档中所有 Area 和 Link 对象引用。

Document 对象属性
body 提供对 <body> 元素的直接访问。对于定义了框架集的文档,该属性引用最外层的 <frameset>。
cookie 设置或返回与当前文档有关的所有 cookie。
domain 返回当前文档的域名。
lastModified 返回文档被最后修改的日期和时间。
referrer 返回载入当前文档的文档的 URL。
title 返回当前文档的标题。
URL 返回当前文档的 URL。

Document 对象方法
close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。
getElementById() 返回对拥有指定 id 的第一个对象的引用。
getElementsByName() 返回带有指定名称的对象集合。
getElementsByTagName() 返回带有指定标签名的对象集合。
open() 打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。
write() 向文档写 HTML 表达式 或 JavaScript 代码。
writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符

参考参考这个:
----------

主题:用户名,密码提交到网页上的登录页:

首先在程序中加入Webbrowser控件
假设你的HTML页面表单代码如下:
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser">
<p>请填写下面表单注册(*项为必添项)</p>
<p>*姓名<input type="text" name="Name" size="20"></p>
<p>*昵称<input type="text" name="NickName" size="20"></p>
<p>电子邮件<input type="text" name="EMail" size="20"></p>
<p>*密码<input type="text" name="Password" size="20"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
注意其中元素的type、Name、value属性。然后VB中的代码如下:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://chen/chat/newuser.htm"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim vDoc, vTag
Dim i As Integer

Set vDoc = WebBrowser1.Document
List1.Clear
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Type = "text" Or vTag.Type = "password" Then
List1.AddItem vTag.Name
Select Case vTag.Name
Case "Name"
vTag.Value = "IMGod"
Case "NickName"
vTag.Value = "IMGod"
Case "Password"
vTag.Value = "IMGodpass"
Case "EMail"
vTag.Value = "IMGod@paradise.com"
End Select
ElseIf vTag.Type = "submit" Then
vTag.Click
End If
End If
Next i
End Sub
点击Command1就可以自动填表并提交。

-------------
这里还有一种获得页面元素的方式:
{{
WebBrowser1.Document.getElementsByName("页面元素名")
}}
页面元素名包括按钮,连接等,一个例子:

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值