ZT from ARIprocedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var CurWebrowser: IWebBrowser; TopWebBrowser: IWebBrowser; Document: OleVariant; WindowName: string; begin CurWebrowser := pDisp as IWebBrowser; TopWebBrowser := (Sender as TWebBrowser).DefaultInterface; if CurWebrowser = TopWebBrowser then ShowMessage('Complete document was loaded') else begin Document := CurWebrowser.Document; WindowName := Document.ParentWindow.Name; ShowMessage(Format('Frame "%s" was loaded', [WindowName])); end; end
onDocumentComplete事件的完成不一定是真正的完成.如果打开一个不存在的页面,或打开不了该页面,当一定时间后,onDocumentComplete事件照样发生,无论是用上面的 IF CurWebrowser = TopWebBrowser then或用 if WebBrowser1.ReadyState = READYSTATE_COMPLETE then都不能判断网页被真正下载.所以得自己加一个判断有没有"无法找到该页"或"无法找到网页"来判断.真搞不懂WebBrowser控件这么不好用!
const pDisp: IDispatch; var URL: OleVariant);
var
CurWebrowser: IWebBrowser;
TopWebBrowser: IWebBrowser;
Document: OleVariant;
WindowName: string;
begin
CurWebrowser := pDisp as IWebBrowser;
TopWebBrowser := (Sender as TWebBrowser).DefaultInterface;
if CurWebrowser = TopWebBrowser then
ShowMessage('Complete document was loaded')
else
begin
Document := CurWebrowser.Document;
WindowName := Document.ParentWindow.Name;
ShowMessage(Format('Frame "%s" was loaded', [WindowName]));
end;
end
IF CurWebrowser = TopWebBrowser then或用
if WebBrowser1.ReadyState = READYSTATE_COMPLETE then都不能判断网页被真正下载.所以得自己加一个判断有没有"无法找到该页"或"无法找到网页"来判断.真搞不懂WebBrowser控件这么不好用!