Moin!
Ich habe ein seltsames Phänomen: Ich lade eine simple
HTML-Seite in ein TWebbrowser und lese sie danach wieder aus. Beim Auslesen werden aber manche schließenden Tags entfernt.
Hier das originale
HTML-Dokument:
Code:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<
html>
<head>
<meta http-equiv="Content-Type" content="text/
html">
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body,td,th {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333333;
}
body {
border: 1px solid #CCCCCC;
margin: 3px;
padding: 0px;
}
-->
</style></head>
<body style="border-style: none; overflow: hidden;" onContextmenu="return false">
<UL>
<LI>Foo</LI>
<LI>Bar</LI>
<LI>Baz</LI>
</UL>
</body>
</
html>
Die kleine Liste ist entscheidend:
Code:
<UL>
<LI>Foo</LI>
<LI>Bar</LI>
<LI>Baz</LI>
</UL>
Sie wird beim Auslesen aus IHTMLDocument2.Body.innerHTML so ausgegeben:
Code:
<UL>
<LI>Foo
<LI>Bar
<LI>Baz
</UL>
Hatte schon mal jemand ein ähnliches Problem? Das ergibt am Ende nur Tagsalat, aber kein valides
HTML. Selbst Tidy scheitert daran, weil sich daraus jetzt theoretisch verschachtelte ListItems (LI) ergeben, die von Tidy verschachtelt geschlossen würden:
Code:
<UL>
<LI>Foo<
<LI>Bar
<LI>Baz</LI></LI></LI>
</UL>
EDIT: Ich seh grade, das Problem ist nicht neu und anscheinend auch nicht originär bei Delphi zu suchen:
Link
EDIT 2: Das Problem löst sich auf wundersame Weise von selbst, nachdem der Rechner einmal neu gestartet wurde. Also definitiv kein Problem an meiner Implementierung. Ich habe den Verdacht, dass der IE eine Menge (
GDI-) Resourcen konsumiert und nicht mehr ordentlich frei gibt. Meine Anwendung hat laut FastMM4 keine Memleaks. Jedoch tritt besagter Fehler mehr oder weniger reproduzierbar auf, wenn man das Fenster mit dem TWebbrowser viele Male nacheinander öffnet und schließt. Eine exakte Anzahl lässt sich aber nicht ermitteln.