请教两个webbrowser控件的问题

wuhuar 2008-12-27 11:49:52
主要是如何判断网页加载完成的

1、有一个DocumentComplet事件
该事件在文档完全装载并已初始化时激发。
语法
PROCEDURE DocumentComplet
LPARAMETERS pDisp,URL
ENDPROC

请问参数pDisp使何使用,书上说是webbrowser控件本身,但pDisp=webbrowser1不行

2、我用上面的DocumentComplet事件来判断网页加载完成
加载网页的程序一直在循环等待,DocumentComplet事件就一直响应不了,这种情况一般怎样解决。

谢谢各位
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
elongwang1 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 wuhuar 的回复:
非常感谢十豆兄,让俺又学到了_vfp.AutoYield


但在刚才又试了一下DocumentComplet,在打开单网页时,跟踪可以看到pdisp对象及所有的属性,但在打开框架网页时,pdisp对象没有属性

Webbrowse控件(我这里为Olecontrol1)的DocumentComplet事件加代码:
*** ActiveX Cont……
[/Quote]
遇到框架网页很恼火,框架刷新不一定是你想要的那个框架。所以用pDisp=webbrowser1来判断只能判断顶级框架重载,用url注意不能用pdisp.locationURL,因为不是顶级框架,pdisp是没有这个locationURL属性的(会报错),实在要用在前面加个on error "",忽略错误,最后再恢复系统错误处理程序。或者直接用url进行判断是不是需要的那个框架重载。
对vfp的webbrowser仍在研究,学习的资料基本没得,都是自己摸索的经验之谈,难免有误,慎信慎行!
wuhuar 2008-12-29
  • 打赏
  • 举报
回复
非常感谢豆兄。
十豆三 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuhuar 的回复:]
非常感谢十豆兄,让俺又学到了_vfp.AutoYield


但在刚才又试了一下DocumentComplet,在打开单网页时,跟踪可以看到pdisp对象及所有的属性,但在打开框架网页时,pdisp对象没有属性

Webbrowse控件(我这里为Olecontrol1)的DocumentComplet事件加代码:
*** ActiveX Control Event ***
Lparameters pdisp, url
Thisform.Tag=url

if pdisp.locationURL=Olecontrol1.locationURL
...
这句会报错.
[/Quote]

这个应该与网页有关,没研究过。
十豆三 2008-12-27
  • 打赏
  • 举报
回复
判断是否加载完成,这样就可以了:

一个按钮的Click事件:
Thisform.Tag=""
Thisform.Olecontrol1.Navigate("www.126.com")
Do While .T.
If !Empty(Thisform.Tag)
Exit
Endif
Inkey(0.1,"H") &&防止程序失去响应
Enddo
Messagebox("加载完成",64,"信息提示")


表单的Load事件加代码:
_vfp.AutoYield=.F. &&当表单包含 ActiveX 控件时,应将 AutoYield 属性设置为假(.F.),不处理未决的 Windows 事件
表单的Unload事件加代码:
_vfp.AutoYield=.T.

Webbrowse控件(我这里为Olecontrol1)的DocumentComplet事件加代码:
*** ActiveX Control Event ***
Lparameters pdisp, url
Thisform.Tag=url
十豆三 2008-12-27
  • 打赏
  • 举报
回复
当文档完全装载并已初始化时

DocumentComplet事件发生是对。在此事件加代码
?pdisp,url

当文档完全装载并已初始化时,显示
(Object) url(如果打开的是文档,显示文件路径+文件名)
wuhuar 2008-12-27
  • 打赏
  • 举报
回复
非常感谢十豆兄,让俺又学到了_vfp.AutoYield


但在刚才又试了一下DocumentComplet,在打开单网页时,跟踪可以看到pdisp对象及所有的属性,但在打开框架网页时,pdisp对象没有属性

Webbrowse控件(我这里为Olecontrol1)的DocumentComplet事件加代码:
*** ActiveX Control Event ***
Lparameters pdisp, url
Thisform.Tag=url

if pdisp.locationURL=Olecontrol1.locationURL
...
这句会报错.

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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