Nur spezielle DIV-ID anzeigen

  • VB.NET
  • .NET (FX) 4.0

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

    Nur spezielle DIV-ID anzeigen

    Hallo zusammen,

    ich habe ein Webbrowser-Control in dem ich eine Seite lade. Diese beinhaltet zahlreiche DIV-Elemente die mich nicht interessieren. Ich würde gerne nur einen speziellen Container anzeigen (ähnlich der Funktion eines Content-Blockers).

    Mit:

    VB.NET-Quellcode

    1. Dim divs = WebBrowser.Document.Body.GetElementsByTagName("div")
    2. For Each d As HtmlElement In divs
    3. If d.Id = "block_content" Then
    4. d.Style = "display:none"
    5. End If

    .. kann ich das Element gezielt ausblenden. Ich möchte jedoch alle anderen Elemente außer genau diesem blockieren.
    Also dachte ich mir, mit einer ungleich-Abfrage sollte es funktionieren:

    VB.NET-Quellcode

    1. Dim divs = WebBrowser.Document.Body.GetElementsByTagName("div")
    2. For Each d As HtmlElement In divs
    3. If d.Id <> "block_content" Then
    4. d.Style = "display:none"
    5. End If
    .. leider funktioniert das nicht, der gesamte Content wird nicht angezeigt.

    Kann jemand helfen?
    Danke

    hate_regex schrieb:

    Kann jemand helfen?
    Wenn Du willst, dass d in der Collection zurückgespeichert wird musst Du mit

    VB.NET-Quellcode

    1. For i = 0 To divs.Length
    2. If divs(i).Id <> "block_content" Then
    3. divs(i).Id = "display:none"
    4. End If
    5. Next
    rangehen und die Elemente der Collection selbst bearbeiten.
    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!
    Hallo Rod und danke schon/wieder einmal für dein Feedback (du hast Aktien hier an dem Forum, oder?)..

    Ob ich das will, weiß ich noch nicht so wirklich aber, aber es schien mir sinnvoll. Was ich wirklich will ist, nur dieses eine Element im Webbrowsercontrol zu zeigen.
    Mit deinem Vorschlag komme ich gerade nicht weiter:
    Fehler 1 "Length" ist kein Member von "System.Windows.Forms.HtmlElementCollection"


    Ich glaube das funktioniert so wie ich es mir dachte nicht. Der DIV-Container ist ein Child eines anderen Containers, da liegt vermutlich der Fehler. Ich hatte es mir zu einfach vorgestellt :(

    hate_regex schrieb:

    "Length"
    Das andere wäre .Count.
    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!