如何避免嵌入式iframe元素的OnDocumentComplete事件?(How do I avo

2019-06-23 13:35发布

我想阻止iframe元素从触发OnDocumentComplete每一次事件。 例如,一个页面有4个I帧,当我打开这个网页,我OnDocumentComplete事件而运行的4倍。 我想运行OnDocumentComplete只有一次的每一页。 我怎样才能做到这一点?

也许我可以删除或阻止iframesTWebBrowser控制。

Answer 1:

该事件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;

德尔福文档:

写一个OnDocumentComplete事件处理采取具体行动的时候一帧或文档被完全加载到Web浏览器。 对于没有框架的文档,该事件发生一次,当文档加载完毕。 在包含多个帧的文件,该事件对于每一帧发生一次。 当多帧文件完成加载,Web浏览器触发事件​​最后一次。

发件人是加载文档的Web浏览器。

PDISP是顶层帧或浏览器的自动化接口。 当加载没有框架的文档,PDISP是Web浏览器的界面。 当装载带有多个帧的文件,这是包含帧的接口,除了事件发生时,当它是在Web浏览器的接口的最后时间。



文章来源: How do I avoid the OnDocumentComplete event for embedded iframe elements?