以下分2种情况说明:(示例代码为delphi)
-
使用TWebBrowser
这个组件再一般开发工具都有。有时我们操作网页时想在页面加载完毕后做一些操作
我们可以把代码写在DocumentComplete里面,当页面加载完毕后会自动触发该事件。但有时页面由多个Frame组成,当每个框架加载完
后都会触发该事件会对我们的操作造成麻烦 怎么解决呢 需要加一句话
if WebBrowser1.Application = pDisp then
这样全部页面加载完毕后才执行 后续代码
-
开发BHO
做IE插件时你也会遇到 多框架网页
这个时候 可以在 DoDocumentComplete 事件中做以下判断
//对于多框架网页 判断全部加载完毕
if not (FIE.ReadyState = READYSTATE_COMPLETE) then exit;
.................
关于 ReadyState 有4种状态
// tagREADYSTATE constants
type
tagREADYSTATE = TOleEnum;
const
READYSTATE_UNINITIALIZED = $00000000;
READYSTATE_LOADING = $00000001;
READYSTATE_LOADED = $00000002;
READYSTATE_INTERACTIVE = $00000003;
READYSTATE_COMPLETE = $00000004;