none
Angezeigtes WebBrowser-Document speichern? RRS feed

  • Frage

  • Hi,

    es geht um folgendes Problem:

    Ich würde gerne in einem Forms-Projekt verschiedene Inhalte im WebBrowser-Control darstellen. Beim Umsetzen dieser Überlegung gibt es aber immer neue Probleme:

    Ich lade also zunächst mal das Dokument (ein Template) im WebBrowser. Dieses wollte ich jetzt über WebBrowser.Document dynamisch erstellen. Ich wollte auch CSS nutzen. Problem: Wenn man versucht, in die InnerHTML-Eigenschaft für das style-Tag festzulegen tritt eine NotSupportedException auf; laut MSDN bei verschiedenen Tags möglich (welche genau ist leider nicht erwähnt, nur beispielhaft). 

    Also wollte ich einfach die Style-Eigenschaft der betroffenen Elemente nutzen. Allerdings kann man das Dokument anschließend nicht als HTML exportieren, da dsa WebBrowser-Control keine Methode oder Eigenschaft für das manipulierte Dokument bereitstellt. WebBrowser.DocumentText gibt nur das ursprungsdokument ohne Änderungen zurück und in InnerHTML-Eigenschaft des head- und des body-Tags finden sich die Style-Angaben auch nicht. 

    Bleibt mir also jetzt nur, jedesmal auf Neue das Dokument temporär zu erstellen, da es keine Möglichkeit gibt es zu speichern (serialisieren von Document wäre ja wohl wie mit Kanonen auf Spatzen schießen) oder fällt Euch was ein?

     

    Danke 

    Momo

    Mittwoch, 2. Februar 2011 18:15

Antworten

  • Hallo Momo,

    Also wollte ich einfach die Style-Eigenschaft der betroffenen Elemente nutzen. Allerdings kann man das Dokument anschließend nicht als HTML exportieren, da dsa WebBrowser-Control keine Methode oder Eigenschaft für das manipulierte Dokument bereitstellt. WebBrowser.DocumentText gibt nur das ursprungsdokument ohne Änderungen zurück und in InnerHTML-Eigenschaft des head- und des body-Tags finden sich die Style-Angaben auch nicht.

    Über WebBrowser.Document.All(0).OuterHtml solltest Du das komplette manipulierte Dokument zurückerhalten.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    • Als Antwort markiert Mohamed Kari Freitag, 11. Februar 2011 18:31
    Sonntag, 6. Februar 2011 16:23
    Beantworter

Alle Antworten

  • Hast du mal dir mal die DocumentText Eigenschaft angeschaut?

    Schau mal hier:

    http://msdn.microsoft.com/de-de/library/system.windows.forms.webbrowser.documenttext.aspx

    Freitag, 4. Februar 2011 09:40
  • "... da das WebBrowser-Control keine Methode oder Eigenschaft für das manipulierte Dokument bereitstellt. WebBrowser.DocumentText gibt nur das Ursprungsdokument ohne Änderungen zurück ..."

    Ziemlich doof... Versteh gar nicht, dass es keine Eigenschaft für das veränderte Dokument gibt.

    Samstag, 5. Februar 2011 14:11
  • Hallo Momo,

    Also wollte ich einfach die Style-Eigenschaft der betroffenen Elemente nutzen. Allerdings kann man das Dokument anschließend nicht als HTML exportieren, da dsa WebBrowser-Control keine Methode oder Eigenschaft für das manipulierte Dokument bereitstellt. WebBrowser.DocumentText gibt nur das ursprungsdokument ohne Änderungen zurück und in InnerHTML-Eigenschaft des head- und des body-Tags finden sich die Style-Angaben auch nicht.

    Über WebBrowser.Document.All(0).OuterHtml solltest Du das komplette manipulierte Dokument zurückerhalten.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    • Als Antwort markiert Mohamed Kari Freitag, 11. Februar 2011 18:31
    Sonntag, 6. Februar 2011 16:23
    Beantworter
  • Hi.

    bin ein bisschen verspätet...

    Funktioniert so, wie du sagst. 

    War gerade dabei, mit meinen eigenen HtmlParser zu basteln :-)

    Ich glaub', da mach ich jetzt mal mit weiter, aber im Notfall kann ich dann jetzt auf obigen Code zurückgreifen.

     

    Danke!

    Momo

    Freitag, 11. Februar 2011 18:34