0

我想在 HTML 文档中识别 Iframe 是否已加载。

这是我尝试过的,但我不确定这是否是识别 IFrame 加载的正确方法:

 var myhtmlDocument = (IHTMLDocument2) HtmlDocument.DomDocument;
 IHTMLSelectionObject htmlselectionObject = myhtmlDocument.selection;
 bool frameloaded = false;
 if (htmlselectionObject != null)
  {
    FramesCollection frames = myhtmlDocument.frames;
    IHTMLSelectionObject frameSelection = frame.document.selection;
    for (int i = 0; i < frames.length; i++)
    {
       object index = i;
       IHTMLWindow2 frame = (IHTMLWindow2) frames.item(ref index);                                
       IHTMLSelectionObject frameSelection = frame.document.selection;

       if(frameSelection)
          frameloaded = true;
    }
 }
4

1 回答 1

0

您使用的对象模型已被弃用,因为它基于 Internet Explorer。

如果您能够切换到使用现代 WebView2(基于边缘)对象,那么您可以监听Co​​reWebView2.NavigationCompleted 事件

如果您真的坚持使用 IHTMLDocument2,那么您将不得不使用addEventListener做类似的事情

IHTMLWindow2 frame = (IHTMLWindow2) frames.item(ref index); 
HRESULT retVal = frame.document.event.addEventListener("load", listener, true);

将在页面加载事件上起作用listener兼容事件处理程序在哪里。

于 2021-08-03T16:47:57.733 回答