Webbrowser / Streamanzeigen

flasherMX

Mitglied
Hallo,

ist es mit dem Webbrowser möglich, einen String welcher aus HTML - Elementen besteht (Bsp: "<html><head></head><body><p>test</p></body></html>") im Webbrowser anzeigen zu lassen bzw. diesen als html-datei auszuführen oder MUSS man diesen String in einer Datei (.html) zwischenspeichern?

mfg flasherMX
 
Hallo,

Natürlich geht das:
Code:
object o = null;
this.browser.Navigate("about:blank", ref o, ref o, ref o, ref o);
while(browser.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
{
	Application.DoEvents();
}
mshtml.IHTMLDocument2 d = (mshtml.IHTMLDocument2) this.browser.Document;
d.body.innerHTML = HtmlString;
Gruss Alexander
 
Hallo,

mshtml ist der Namespace der dll, die du benötigst um mit Webbrowser und Html-Dokumenten zu arbeiten, du kannst sie als COM Referenz einbinden (Sie heisst: Microsoft HTML Object Library).

Gruss Alexander
 
Hallo,

mein problem ist nun, dass der Quellcode zwar angezeigt aber gewisse Scripts (javascript) nicht ausgeführt werden.

Woran kann das liegen?

mfg s1ck
 
Hallo,

Also javascripts werden normalerweise ausgeführt. Haste denn scripts die ausgeführt werden und welche, die nicht ausgeführt werden? Häng doch mal ne Beispieldatei rinne.

Gruss Alexander
 
Hab es jetzt zwar anderst gelöst, würde mich aber trotzdem mal interessieren:

Code:
<HTML>
<head></head>
<body>
<form name=fm method=post action="http://192.168.0.45/Login" target="_top">
<input type=hidden name="pass" value="passwort">

<script type="text/javascript">
<!--
document.fm.submit();

window.open("http://192.168.0.45/reboot");

window.opener = top;
window.close();

//-->
</script>
</body>
</html>

Das soll ausgeführt werden. :D

mfg flasherMX
 
Hallo,

Ich hab das nun nicht ausprobiert, aber ich denke mal, wenn du den innerHTML setzt, ist das nicht das selbe, wie wenn eine Seite komplett lädst. Wahrscheinlich werden nur HTML-Tags berücksichtigt. Natürlich kannst du aber dein Form auch code-seitig absenden. Brauchst es dir nur aus dem IHtmlDoc zu ziehen.

Gruss Alexander
 
Ich habe noch ne optimaler methode, als ihr!

Da ich ein wysiwug editor geschrieben habe der in echtzeit sich aktualisiert, hatte ich erst probleme sowas zu finden wie ihr da oben. erst hatte ich versucht auf den link zu wecheln über navigate und zwar auf "about:<HTML><body>und hier der rest</body></HTML>" das klapt aber nur bis rund 500 zeichen, bei mehr muss man auf .DocumentText umschwenken.

so hier

Code:
webbrowser1.DocumentText=txt.Text; //txt enthält die html Seite
 
Zurück