Webbrowser Navigate Webseite warten

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Semiconductor.

    Webbrowser Navigate Webseite warten

    Hallo,

    folgendes Szenario existiert:

    Ich habe eine HTML Seite, die , bevor man auf die zugreift, eine "Webseite wird geladen" Prä-HTML Seite öffnet und man unmittelbar in 2 Sekunden dann auf die gewollte Zielwebseite landet.

    Ich habe mit Web.Request versucht, allerdings wird damit tatsächlich nur die "Wird geladen" Webseite dargestellt und ich bin daran gescheitert.
    Die mäßig funktionierende Version ist zurzeit der olle Webbrowser, der die ZIEL-Adresse auch tatsächlich speichern lässt ,allerdings mit einem Nachteil:
    Ich muss warten.

    Wie kann ich dies programmiertechnisch effizient und ressourcenschonend umsetzen, dass die "Wird geladen Webseite" auch abgewartet wird?

    Ich habe folgende Ansätze versucht:

    VB.NET-Quellcode

    1. Dim htmlcode as string = ""
    2. WebBrowser1.Navigate(url.tostring + "/index.html")
    3. While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    4. Application.DoEvents()
    5. End While
    6. htmlcode = WebBrowser1.DocumentText.ToString()
    7. Do Until htmlcode.Contains("Willkommen auf der Webseite") = true
    8. Try
    9. htmlcode= WebBrowser1.DocumentText.ToString()
    10. Catch ex As Exception
    11. End Try
    12. Loop


    Das funktioniert bsp. nicht, da es teilweise einfriert. Nutze ich Thread.Sleep, friert der ganze Thread auch ein.

    Die beste Lösung ist zurzeit, ich baue eine MSGBOX ein und drücke auf die Msgbox selbst, bis die Zielwebseite auch richtig geladen ist und ich den HTML Code habe.
    Dies soll durch eine Funktion allerdings erfüllt werden.

    Gibt es da eine Möglichkeit, ohne unbedingt auf einen Thread umzuschweifen?

    Um welche Seite handelt es sich denn?
    Nur um das ganze mal nachzuvollziehen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du könntest auf der Wird-Geladen-Webseite eine Weiterleitung für 2 Sekunden aktivieren, wenn du das meintest:

    HTML-Quellcode

    1. <meta http-equiv="refresh" content="2; URL=http://meine zieladresse" />


    In den Head-Bereich ^

    Übrigens: Habe ich es richtig verstanden, dass das Laden der Zielseite auch Zeit benötigt und dass dich das stört, weil die Ladezeit so über 2 Sekunden beträgt?

    Semiconductor schrieb:

    Ich habe eine HTML Seite, die , bevor man auf die zugreift, eine "Webseite wird geladen" Prä-HTML Seite öffnet und man unmittelbar in 2 Sekunden dann auf die gewollte Zielwebseite landet.

    ExteNesia.de schrieb:

    Du könntest auf der Wird-Geladen-Webseite eine Weiterleitung für 2 Sekunden aktivieren, wenn du das meintest:

    Nochmal nachlesen... Sein Problem ist, dass er nur die temporäre Weiterleitung erreicht.

    Semiconductor schrieb:

    Tryhtmlcode= WebBrowser1.DocumentText.ToString()Catch ex As ExceptionEnd Try
    Keine gute Idee. Was machst Du, wenn ein Fehler im Endprogramm auftritt? TryCatch ist ein heißes Eisen

    Außerdem sicher, dass es 'nen WebBrowser braucht? Anscheinend sollte der HttpWebRequest das ja automatisch behandeln können.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Alle Webseiten, die mit Javascript eine Weiterleitung haben, funktionieren auch nicht per HTTPWebrequest und der aktivierten automatischen Weiterleitung :(
    Darunter zählen diverse Foren

    Eine sehr lustige Lösunge ist, dass ich per Mouse_Move und Mouse_Click Befehl quasi den Browser öffne und per Timer warten lasse. Sehr ineffizient, aber die einzige Lösung ^^"

    Beispiel:
    meta-refresh.redirect301.de/weiterleitung-20-sekunden.html

    Ist ein sehr krasses Beispiel damit man es versteht:

    Der Webbrowser navigiert zur Zieladresse, kommt erstmal zur "Weiterleitungspage"
    Der HTML Code ist somit nicht die von der Zieladresse, sondern von der Weiterleitungspage.