Url eines Webbrowsers "prüfen", vor dem laden der seite...

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Url eines Webbrowsers "prüfen", vor dem laden der seite...

    Hallo VBPler

    Ich hab gerade folgendes mit einem Webbrowser vor:

    Seite Öffnen
    Link anklicken
    Aufgerufene url "prüfen"
    wenn diese bestimmte Anforderungen nicht erfüllt nicht zur seite navigieren

    Jetzt dachte ich könnte man einfach im Navigating ereigniss die url mit webbrowser.url auslesen
    aber die seite wurde dann bereits geladen...
    das sah etwa so aus:

    Quellcode

    1. If not webb.Url.ToString.StartsWith("http://url.de")Then
    2. Select Case MessageBox.Show("Du bist nicht auf url.de trotzdem öffnen?", "Info", MessageBoxButtons.YesNo)
    3. Case Windows.Forms.DialogResult.No
    4. webb.GoBack()
    5. Case Windows.Forms.DialogResult.Yes
    6. End Select
    7. else
    8. MessageBox.Show("Du bist auf url.de", "Info")
    9. End If


    Ich hoffe da gibt es irgendeine andere Lösung

    Grüße, Minzkraut
    @Wipf1000 Du kannst doch eine eigene von WebBrowser abgeleitete Klasse erstellen und dort in der Navigate-Prozedur Deine Tests machen.

    VB.NET-Quellcode

    1. Public Class MyWebBrowser
    2. Inherits WebBrowser
    3. Public Overloads Sub Navigate(url As String)
    4. ' hier URL testen
    5. MyBase.Navigate(url)
    6. End Sub
    7. End Class
    Du musst natürlich alle Navigate-Prozeduren überladen.
    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!

    RodFromGermany schrieb:

    Du musst natürlich alle Navigate-Prozeduren überladen.
    Ehrlich?
    Ich dachte immer die nicht überladenen Auflösungen nimmt er automatisch von MyBase.

    Oder meintest du "Du musst natürlich alle Navigate-Prozeduren überladen, die einen erweiterten URL-Test beinhalten sollen"?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    nimmt er automatisch von MyBase.
    Diese Prozedur ist nicht virtual / Overridable.
    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!