Lea*_*dri 6 delphi iframe delphi-7 twebbrowser
我希望每次都能阻止iframe元素触发OnDocumentComplete事件.例如,一个页面有4个iframe,当我加载此页面时,我的OnDocumentComplete事件运行了4次.我想OnDocumentComplete为每一页只运行一次.我怎样才能做到这一点?
也许我可以删除或封锁iframes的TWebBrowser控制.
kob*_*bik 14
将OnDocumentComplete针对主文档中的每个FRAME/ 触发该事件IFRAME.
如果你想忽略它们试试这个:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
// check that the event is raised for the top-level browser (not frames or iframes)
if pDisp = TWebBrowser(Sender).ControlInterface then
begin
// do something nice...
end;
end;
Run Code Online (Sandbox Code Playgroud)
来自Delphi Docs:
编写OnDocumentComplete事件处理程序,以在框架或文档完全加载到Web浏览器时执行特定操作.对于没有框架的文档,此事件在文档完成加载时发生一次.在包含多个框架的文档上,每个框架都会发生一次此事件.当多帧文档完成加载时,Web浏览器最后一次触发事件.
Sender是加载文档的Web浏览器.
pDisp是顶级框架或浏览器的自动化界面.加载没有框架的文档时,pDisp是Web浏览器的界面.当加载具有多个框架的文档时,这是包含框架的界面,除了最后一次事件发生时,它是Web浏览器的界面.