关于WebBrowser的问题,我怎么知道网页是否已经加载完毕?
我用了
'等待加载完毕
Do Until WebBrowser1.Busy = False
DoEvents
Loop
不管用哦,为什么?最好是怎么写了?
问题点数:100、回复次数:10Top
1 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-03 13:40:26 得分 8
webbrower本身就自带了一个download_complete事件
你直接把代码放那个事件里不就可以了Top
2 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2006-07-03 13:41:20 得分 8
webbrowser有个documentcomplete事件,触发了就是加载完毕Top
3 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-03 13:50:57 得分 8
楼上牛人阿
怎么4星不是全区通用的吗?Top
4 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-07-03 13:59:02 得分 10
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OLEvariant);
var
CurWebrowser : IWebBrowser;
TopWebBrowser: IWebBrowser;
Document : OLEvariant;
WindowName : string;
begin { TForm1.WebBrowser1DocumentComplete }
CurWebrowser := pDisp as IWebBrowser;
TopWebBrowser := (Sender as TWebBrowser).DefaultInterface;
if CurWebrowser=TopWebBrowser then
begin
ShowMessage('Document is complete.')
end
else
begin
Document := CurWebrowser.Document;
WindowName := Document.ParentWindow.Name;
ShowMessage('Frame ' + WindowName + ' is loaded.')
end;
end;
Top
5 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-03 14:06:29 得分 8
楼上你那是vb代码吗....
dehpi的也拿来了Top
6 楼kongxiangli(笑看红尘)回复于 2006-07-03 14:22:11 得分 0
问题是我有了两次触发,只有一个documentcomplete事件
我在用代码点WebBrowser1的一个按钮,得到另外一个页面,怎么判断第二个界面也加载完毕了
Top
7 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2006-07-03 21:00:36 得分 20
如果这个按钮是通过跳转方式访问另外一个页面的话,应该是可以得到documentcomplete事件的,如果通过脚本写入就很难获得了。Top
8 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-03 21:06:14 得分 20
可以以内容来区分的
比如
if第一个页面上有一个soft字符 而第2个没有而有个"down"
那么可以这样写
if instr(webbrowser1.innertext,"soft")>0 then
end if
Top
9 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-03 21:06:40 得分 18
if instr(webbrowser1.innertext,"soft")>0 then
elseif instr(webbrowser1.innertext,"down")>0 then
end ifTop
10 楼kongxiangli(笑看红尘)回复于 2006-07-04 09:09:29 得分 0
不是按钮,实际上是个超连接,我是让程序自动点的Top




