In meinem vb.net-Programm verwende ich einen Webbrowser, um dem Benutzer eine HTML-Vorschau zu zeigen. Ich habe zuvor einen Server aufgerufen, um den HTML-Code abzurufen, bin dann in einem asynchronen Thread zurückgekehrt und habe ein Ereignis ausgelöst, um WebBrowser.DocumentText mit der HTML-Zeichenfolge zu füllen, die ich zurückgegeben habe.
Jetzt habe ich es eingerichtet, um alle Informationen auf dem Client abzurufen, ohne jemals auf den Server zugreifen zu müssen, und ich versuche, dasselbe Ereignis auszulösen. Ich beobachte, wie der Code durchgeht, und es hat die HTML-Zeichenfolge korrekt und alles, aber wenn ich es versuche
browser.DocumentText = _emailHTML
der Inhalt von DocumentText bleibt als “<HTML></HTML>“
Ich habe mich nur gefragt, warum der DocumentText nicht festgelegt wurde. Hat jemand Vorschläge?
Ich habe festgestellt, dass die WebBrowser Die Steuerung muss normalerweise initialisiert werden about:blank ohnehin. Dasselbe muss beim Navigieren zu unterschiedlichen Inhaltstypen (wie text/xml zu text/html) erfolgen, da der Renderer unterschiedlich ist (mshtml für text/html, etwas anderes für text/xml).
Ich schätze die Hilfe. Es stellte sich heraus, dass ich es mit browser.Document.OpenNew (True) bekommen konnte. Sie haben Recht – ich musste es initialisieren.
– Joe Morgan
6. Oktober 2008 um 14:32 Uhr
Warum doc.Write gefolgt von DocumentText = …? Reicht es nicht, einfach ein browser.Document.Write(_emailHTML);
– Nikodemus RIP
28. März 2012 um 14:03 Uhr
Glauben Sie nicht, dass diese Methode funktioniert, wenn AllowNavigation ist auf false gesetzt.
– Brad Moore
30. Januar 2013 um 3:14 Uhr
Danke, ich habe stundenlang mit diesem Problem gekämpft … Ich verstehe jedoch nicht, warum die Lösung funktioniert. Könnte erklären, warum doc.Write(…) benötigt wird?
– Mondwanderer
6. Februar 2013 um 16:53 Uhr
Es ist ein paar Jahre her, seit ich mit dem Browser-Steuerelement gearbeitet habe, aber wenn ich mich richtig erinnere, hing es mit der Initialisierung zusammen … es ist sicherlich nicht ideal, aber es ist auch nicht erforderlich, als Teil der Initialisierung zu about:blank zu navigieren . Ich würde empfehlen, eine Methode namens “InitializeWebBrowser” oder so etwas zu erstellen, damit die Absicht klar ist.
– David Mohundro
6. Februar 2013 um 17:27 Uhr
Ich habe folgendes gefunden und es hat funktioniert!
Achten Sie darauf, dass Sie nicht kündigen Navigieren Veranstaltung von Webbrowser zum über: leer Seite. Webbrowser navigiert zu über: leer vor dem Einstellen DokumentText. Wenn Sie also Links selbst handhaben möchten, müssen Sie den folgenden Handler von erstellen Navigieren Veranstaltung: