OnDocumentComplete和OnDownloadComplete在页面有iframe或者frame时就无法正确判断整个页面是否完全载入完毕了。我想在全部页面都完全载入后执行一个操作。该如何呢?谢谢!

解决方案 »

  1.   

    DISPID_DOCUMENTCOMPLETE
    不行吧。我记昨用过好像不行。
      

  2.   

    case DISPID_DOCUMENTCOMPLETE:
    {
            CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> pDisp;
    pDisp = pDispParams->rgvarg[1].pdispVal;

    CComQIPtr<IUnknown, &IID_IUnknown> pUnkDisp;
    pUnkDisp = pDisp;

    CComQIPtr<IUnknown, &IID_IUnknown> pUnkBrowser;
    pUnkBrowser = m_pWebBrowser2;

    if(pUnkBrowser == pUnkDisp)
    {
    //页面加载完毕
    }
    break;
    }
      

  3.   

    原理:
    在DISPID_DOCUMENTCOMPLETE时,可能是某一框架发出的,所以在代码里判断当前完成的框架是不是和IE的主框架相同,如果相同则表示,页面加载完毕。
      

  4.   

    收到 DISPID_DOCUMENTCOMPLETE 时,判断 m_pWebBrowser2->get_Busy,返回为真那就是还没完
      

  5.   

    http://support.microsoft.com/kb/q180366/