Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

Ako zistiť, kedy stránku prebieha nakládky v ovládaním

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:180366
Upozornenie na neaktuálny obsah článku databázy KB
Tento článok obsahuje informácie o produktoch, pre ktoré spoločnosť Microsoft už neposkytuje technickú podporu. Z tohto dôvodu je tento článok publikovaný ako nezmenený a už nebude aktualizovaný.
SUHRN
Internet Explorer ovládaním požiare DocumentComplete udalosťpo dokončení preberania webovej stránky. Môžete vytvoriť udalosť handlerFunkcia vo vašej aplikácie pre túto udalosť. Tento článok popisujekroky pri rozhodovaní, či je hotový ovládanímsťahovanie webovú stránku.
DALSIE INFORMACIE
Ovládaním požiare DocumentComplete udalosť pri jeho ReadyStateNehnuteľnosť sa zmení na READYSTATE_COMPLETE. Naznačuje, žeOvládaním dokončilo, sťahovanie webovej stránky. Tu sú niektorédôležité body týkajúce sa tejto udalosti:
  • Pre stránky s rámy, DocumentComplete padáka raz po všetko, čo je hotovo.
  • V súvislosti s viacerými rámami DocumentComplete dostane padáka viackrát. Nie každý rám požiare túto udalosť, ale každý rám, že požiare DownloadBegin udalosť požiare zodpovedajúce DocumentComplete udalosť.
  • DocumentComplete udalosť má IDispatch * parameter, ktorý je IDispatch rámu (shdocvw), pre ktoré je vyhodil DocumentComplete.
  • Najvyššej úrovne rámu požiare DocumentComplete na konci. Takže, skontrolovať, ak stránke prebieha sťahovania, budete musieť skontrolovať, ak IDispatch * parameter je rovnaký ako IDispatch ovládaním.

    Pre Visual Basic, tu je kód, ktorý vykonáva túto kontrolu:
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object,                                         URL As Variant)   If (pDisp Is WebBrowser1.Object) Then      Debug.Print "Web document is finished downloading"   End IfEnd Sub					
Zvládnuť DocumentComplete udalosť v Visual C++ a zistiť, čidokončení preberania webovej stránky, postupujte nasledovne.

Všimnite si, že budete postupovať podľa krokov závisieť spôsob používania ovládaním.
  • Ak vytvárate ovládaním v objekte CWnd/CView môžetemusí nasledovať kroky 1 až 4.
  • Ak vytvárate ovládaním v objekte CDialog/CFormViewlen je potrebné sledovať krok 4.
  • Ak používate CHtmlView triedy s Visual c ++ 6.0,prepísanie CHtmlView::DocumentComplete() a postupujte podľa kroku 4, pomocoum_pBrowserApp člen CHtmlView triedy prístup ovládaním.
  1. Definovať OnDocumentComplete metódu v súbore hlavičky pre vaše CWnd/CView-odvodené triedy:
    afx_msg void OnDocumentComplete(LPDISPATCH lpDisp,                                VARIANT FAR* URL);					
  2. Vyhlásiť udalosť umývadlo v rovnakom súbore hlavičky:
    DECLARE_EVENTSINK_MAP()					
  3. V súbore implementácie (.cpp) pre vaše CWnd/CView-odvodené triedy implementovať udalosť drez mapa:
    BEGIN_EVENTSINK_MAP(CYourView, CView)   ON_EVENT(CWBTstView, ID_WEB_BROWSE, 259 /* DocumentComplete */,            OnDocumentComplete, VTS_DISPATCH VTS_PVARIANT)END_EVENTSINK_MAP()					
  4. Implementovať OnDocumentComplete metóda:
    void CWBTstView::OnDocumentComplete(LPDISPATCH lpDisp,                                    VARIANT FAR* URL){   IUnknown*  pUnk;   LPDISPATCH lpWBDisp;   HRESULT    hr;   pUnk = m_webBrowser.GetControlUnknown();   ASSERT(pUnk);   hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp);   ASSERT(SUCCEEDED(hr));   if (lpDisp == lpWBDisp )   {      // Top-level Window object, so document has been loaded      TRACE("Web document is finished downloading\n");   }  lpWBDisp->Release();}					
Tento prístup funguje, keď ovládaním prejde na stránku, ktorázmení najvyššej úrovne rámu. Povedať, ak navigačné vyskytne v rámci rámusám, potom konečnú DocumentComplete, že je vyhodili je, že rámua nie najvyššej úrovne rámu. Napríklad Uvažujme o nasledovnom scenári.

Ovládaním je hostiteľom množinu rámov. V rámci jedného rámu narámov, používateľ klikne na prepojenie, ktoré otvorí novú stránku v rámesamotný a drží zvyšok z frameset neporušené. Nová strana by mohliobsahovať viacnásobné rámcov znova. Takže, bude existovať viacero DocumentCompletenotifikácie, (jeden pre každý nový rám). Ale pretože má najvyššej úrovne rámnezmenili, konečné DocumentComplete by, že časti rámu, ktorý mázmenil.

Ak máte záujem na kontrolu pre kompletné v tomto záverečný dokumentscenár, ste mohli urobiť nasledovné:
Overiť, či IDispatch parameter DocumentComplete je rovnaké ako parameter IDispatch prvý NavigateComplete2 udalosti. Pretože prvý NavigateComplete2 je najvyššej úrovne rámu a posledný DocumentComplete je tiež najvyššej úrovne rámu, robí porovnanie takéto módne vám povedia, či stránka prebieha preberanie.
Tu je niekoľko vzorky c ++ kód:
LPDISPATCH glpDisp = NULL; // global LPDISPATCH, can also                           // be of class scope// NavigateComplete2 eventvoid CWebbrDlg::OnNavigateComplete2Explorer1(LPDISPATCH pDisp,                                             VARIANT FAR* URL){   // Check if glpDisp is NULL. If NULL, that means it is   // the top level NavigateComplete2. Save the LPDISPATCH   if (!glpDisp)      glpDisp = pDisp;}void CWebbrDlg::OnDocumentCompleteExplorer1(LPDISPATCH pDisp,                                            VARIANT FAR* URL){   if (glpDisp && glpDisp == pDisp)   {      // if the LPDISPATCH are same, that means      // it is the final DocumentComplete. Reset glpDisp      TRACE("Document is done downloading");      glpDisp = NULL;   }}				
DocumentComplete

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 180366 – Posledná kontrola: 10/18/2011 07:38:00 – Revízia: 2.0

  • kbhowto kbmt KB180366 KbMtsk
Pripomienky