Rubrik: HTML/Internet/Netzwerk · WebBrowser | VB-Versionen: VB4, VB5, VB6 | 04.03.04 |
Feststellen, wann eine Webseite vollständig geladen ist Hier wird gezeigt, wie man richtig überprüft, ob ein Dokument im WebBrowser-Control vollständig geladen ist (inkl. Frames) | ||
Autor: Ralf Schoen | Bewertung: | Views: 25.382 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wenn man das WebBrowser-Control in seiner Anwendung einsetzt, steht man oftmals vor dem Problem, in Erfahrung zu bringen, wann die Seite vollständig geladen ist. Für diesen Zweck stellt uns das WebBrowser-Control zwar das DocumentComplete-Ereignis zur Verfügung, doch wird dieses leider mehrfach ausgelöst, wenn die anzuzeigende Seite aus Frames besteht. Besteht eine Seite bspw. aus 4 Frames wird das DocumentComplete-Ereignis insgesamt 4 mal ausgelöst.
Nachfolgend zeigen wir, wie man dennoch herausfindet, wann eine Seite vollständig geladen wurde - egal, ob mit Frames oder ohne.
Erstellen Sie ein neues Projekt und platzieren auf die Form ein WebBrowser-Control, sowie ein Label-Control und einen CommandButton.
Fügen Sie nachfolgenden Code in den Codeteil der Form ein:
Option Explicit Private Sub Form_Load() Label1.Caption = "keine Seite" End Sub
Private Sub Command1_Click() ' Seite laden Label1.Caption = "Loading..." WebBrowser1.Navigate "http://msdn.microsoft.com/library" End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) ' Prüfen, ob Seite vollständig geladen ist If (pDisp Is WebBrowser1.Object) Then Label1.Caption = "Dokument komplett geladen." Else Debug.Print "Loading..." End If End Sub
Starten Sie das Projekt und klicken auf den CommandButton. Nach und nach wird die Microsoft-Seite aufgebaut. Achten Sie einmal auf das Direktfenster. Dort können Sie sehen, dass das DocumentComplete-Ereignis mehrfach ausgelöst wurde. Frames sei Dank! Das Label-Control hingegen ändert sich erst, wenn die Seite wirklich vollständig geladen wurde.