VB WebBrowser控件总结

本文详细介绍了VB中WebBrowser控件的使用,包括BeforeNavigate2、DocumentComplete、DownloadComplete等事件的区别和触发时机。重点讨论了DocumentComplete事件与DownloadComplete事件在何时可以安全访问文档内容,并提供了VB代码示例来展示如何控制和响应这些事件。此外,还提及了其他相关事件,如CommandStateChange和NewWindow2,以及它们在WebBrowser控件导航过程中的作用。
摘要由CSDN通过智能技术生成

1.获取WebBrowser加载网页的内容

WebBrowser1.Document.getElementById("kw").Value = "VB编程"

WebBrowser1.Document.getElementById("f").submit '提交表单

2.往WebBrowser控件写入内容

WebBrowser1.Document.write str

3. 操作页面元素
for(i=0;i<document.getElementsByTagName.length;i++){
document.getElementsByTagName("input")[i].style.background="#CCCCCC";
}

2.webbrowser控件的DocumentComplete和DownloadComplete的区别

文档完全下载后,一个 DownloadComplete 事件就被引发。这并不一定表明可以通过对象模型安全地访问文档内容了。DocumentComplete 事件才表明所有的工作都已完成并且文档已经就绪。

DocumentComplete url请求的页面完成;当整个文档完成时激发,刷新页面不激发
DownloadComplete url中请求的下载完成;当某项下载操作已经完成后激发,刷新也可激发此事件
DownloadComplete 事件比 DocumentComplete 事件先触发

 

一个Document可能包括多个Download,例如Link的CSS、脚本和图片。多个框架的DownloadComplete     和DocumentComplete的触发并无指定的先后次序;但是可以根据DocumentComplete的参数判断是哪一个浏览器对象触发了事件(框架也是浏览器对象)

 

以下转自:http://blog.csdn.net/shanhe/archive/2005/08/11/451681.aspx ,更多内容浏览该页面


如你所知, Internet Explorer像其他COM对象一样激发事件—通过连接点.但实际上Internet Explorer如何激发事件呢?每次 Internet Explorer需要向客户提供关于当前活动状态的信息, Internet Explorer 激发通过DWebBrowserEvents2 连接点激发一个事件. (之前到版本 4, Internet Explorer 通过 DWebBrowserEvents 接口激发事件.但到了版本4.x 和5, Internet Explorer 通过 DWebBrowserEvents2 连接点.)

注意


如何领会到 Internet Explorer 加法那些事件 ? 最佳途径是 MSDN Online Web Workshop. 另外采用 OLE-COM Object Viewer

不像WebBrowser 控件 和 Internet Explorer的其他接口,是剑接口没有继承体系. DWebBrowserEvents 接口严格应用于Internet Explorer 3. 如果你正宿主WebBrowser 控件或者自动化Internet Explorer 5, 你可以通过此接口接收事件—但是不可挂接. DWebBrowserEvents2 接口包含的方法是为Internet Explorer 5定制的.用 DWebBrowserEvents2 替代DWebBrowserEvents ,你将有更多的控制能力. 所以不要忘记接口的最后面的2.

尽管DWebBrowserEvents2 是一个事件接口, 它其实就是像IWebBrowser2   一样的另外 COM 接口,所以它可以包含方法. (D 开头的命名是表示这是派遣接口.一个派遣接口是一个IDispatch 接口.但不同于普通接口, 派遣接口没有vtable.) 就像一个接口一样,派遣接口只不过提供一些函数的定义—他们并不真实实现.事件的实现由客户提供.举例来说,为了让WebBrowser 激发一个事件, 在DWebBrowserEvents2 接口中适当定义一些方法.这些方法由客户实现.但WebBrowser不直接调用这些方法.换句话讲, WebBrowser 并不调用DocumentComplete 方法.因为 DWebBrowserEvents2 是派遣接口, WebBrowser 通过IDispatch::Invoke 调用客户的实现. 早期, 当WebBrowser 调用客户的Invoke 实现, WebBrowser 传递事件被激发的DISPID.

注意


某些工具如 Visual Basic, MFC, ATL 提供 Invoke 实现

7-6 列出 WebBrowser 事件. (这些是WebBrowser 控件和Internet Explorer供有的事件,尽管有些事件仅仅用于自动化Internet Explorer).

注意


尽管有些方法为不包含 2 . 尽管 DWebBrowserEvents2 并非继承自 WebBrowserEvents , DWebBrowserEvents2 还是 匹配 DWebBrowserEvents 中被更改的,以免混淆。

注意表 7-6 重的参数有些值同样有 VARIANT_ TRUE VARIANT_FALSE . 如果你使用Visual C++,确信分派使用这些值不要使用 TRUE FALSE . 如果你使用Visual Basic, 它会自动帮助你转换,你可以比较True和False.

现在来仔细看看这些事件

Table 7-6 WebBrowser 事件

私有事件

描述

BeforeNavigate2

在导航之前发生 . ( 该事件并不在不刷新页面的时候发生 )

CommandStateChange

当命令状态改变时发生 . 该事件告诉你何时使能或者禁止 Back 以及 Forward 菜单像或者按钮 .

DocumentComplete

当整个文档完全完成装载时发生 . 如果你刷新页面 , 此事件并不激发 .

DownloadBegin

当一个下载项目开始时候发生 ,此事件也在你刷新( IWebBrowser2::Refresh. )时发生

DownloadComplete

党整个下载项目完成是发生该事件也发生在完成刷新页面 .

NavigateComplete2

当整个导航完成 . 该事件对应于 BeforeNavigate2 .

NewWindow2

在一个新的窗口被创建以显示 Web 页或者其他资源的时候发生。譬如你在页面中以新建窗口的方式打开一个连接

OnFullScreen

FullScreen 属性被改变时候发生 . 此事件携带一个 VARIANT_ BOOL 类型的 输入参数指示 Internet Explorer 是否处于全屏( full-screen 模式 (VARIANT_TRUE ) 或者处于普通模式 (VARIANT_FALSE ).

OnMenuBar

菜单条 MenuBar 属性被改变的时候发生 . 一个 VARIANT_ BOOL 类型 输入参数指   Internet Explorer 的菜单条属性是可见 (VARIANT_TRUE ) 或者隐藏 (VARIANT_ FALSE ).

OnQuit

Internet Explorer 正在退出时发生 . 该事件当用户关闭浏览器或者调用 Quit 方法 .

OnStatusBar

StatusBar 属性被改变的时候发生。事件携带 VARIANT_ BOOL 类型的输入参数 指示 Internet Explorer 的状态条是否可见 (VARIANT_TRUE ) 或者隐藏 (VARIANT_FALSE ).

OnTheaterMode

TheaterMode 属性被改变时发生 . 事件携带 VARIAN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值