如何判断navigate2网页加载完成?

seven2015 2010-09-20 03:11:38
ole_2.object.navigate2('www.baidu.com')
有个疑问navigate2没有返回加载成功的标记
那如何去判断Ole_2 (Microsoft Web Browser) 是否完成加载网页?
通过网页标识? 还是有其他的解决方法?
希望得到高手的指点。
...全文
382 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
seven2015 2010-09-21
  • 打赏
  • 举报
回复
恩 我试着再用Timer 控件,看看效果
谢谢 leio 和 qj_198127
现在有了一个比较清晰的概念了
leio 2010-09-21
  • 打赏
  • 举报
回复
用timer监控IE控件页面加载情况,不管是我以前做的程序,还是现在的测试结果,对页面加载速度的影响都可以忽略不计,从未发生过你说的假死,除非网站打不开或DNS有问题才会出毛病。


我上面的代码只是说明这种方法的可行性,在实际使用中,需要设置一个超时值。timer时计数,计数达到超时值,就终止页面加载,否则IE控件真要是死了,timer就死循环了。

另外,即使判断页面加载成功了,也需要象类似1楼的代码,判断页面加载是否正确。有针对性的程序,除了判断标题,还要根据outerHTML判断页面对象等等。。。。

要做的工作很多的。
seven2015 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 leio 的回复:]
自定义一个计时器,窗口上也可以直接用窗口的timer事件。

navigate之后,timer(.1)
窗口上另放一个文本控件(st_1),用于显示页面加载情况。

在timer事件中写代码

SQL code

boolean lb_state

lb_state = ole_1.object.busy
if lb_state then
st_1.text = ……
[/Quote]

用延时函数侦听控件的状态,确实能够获取到网页加载成功与否的信息。测试后发现,侦听的同时,缺降低控件加载的速度,或者说占了一定系统资源。页面会呈现一种假死的状态。
不知道大侠有没有遇到这种情况。我自定义了一个计时器。
leio 2010-09-20
  • 打赏
  • 举报
回复
自定义一个计时器,窗口上也可以直接用窗口的timer事件。

navigate之后,timer(.1)
窗口上另放一个文本控件(st_1),用于显示页面加载情况。

在timer事件中写代码

boolean lb_state

lb_state = ole_1.object.busy
if lb_state then
st_1.text = '页面加载中......'
else
st_1.text = '页面加载完成!'
timer(0)
messagebox('提示','页面加载完成!')
end if
seven2015 2010-09-20
  • 打赏
  • 举报
回复
是个好方法
如果我不在事件中写代码,还有什么其他的好方法?
经过测试,发现在事件中写代码,会产生终止性错误。
不知是我软件问题,还是代码问题?
qj_198127 2010-09-20
  • 打赏
  • 举报
回复
在documentcomplete里面用
string ls_title
ls_title = this.object.document.title
if match(ls_title,'无法') or match(ls_title,'cannot') then
this.object.navigate('about:blank')
messageBox('提示','连接不到服务器或网络错误!')
return
end if

663

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧