Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WebBrowser zeigt den Inhalt nicht konform an (https://www.delphipraxis.net/84499-webbrowser-zeigt-den-inhalt-nicht-konform.html)

jokerfacehro 17. Jan 2007 16:42


WebBrowser zeigt den Inhalt nicht konform an
 
Hallo,
ich nutze den TWebBrowser zur Darstellung der Beiträge in einem Chat.
Damit kann ich leicht smileys, links und weiteres einfügen.

das mach ich mit:
[delphi]
uses mshtml;

procedure TForm1.insert_text(str:string);
var
Range: IHTMLTxtRange;
begin

Range := ((WebBrowser2.Document as IHTMLDocument2).body as
IHTMLBodyElement).createTextRange;
Range.collapse(False);
Range.pasteHTML('
'+str);
Range.scrollIntoView(true);
//[pre]Range.text:=Range.text+str; anzeigen des html codes als text
end;
[/pre]

das klappt auch soweit, wenn ich vorher about:blank geladen habe.
wenn ich jetzt eine zeile einfüge zum beispiel
[pre]
str:='link.htm'
[/pre]

dann wird der link nicht beendet und alles darauf folgende wird unterstrichen und man kann darauf clicken. clickt man darauf verweist er auch auf die link.htm, das klappt soweit doch anscheinend findet er nicht das ende für den label vom link also [pre]</a>[/pre]

das gleiche problem habe ich mit [pre]
<font>[/pre]
und allen anderen html tags die etwas umschließen wie <div>

das lustige ist, wenn ich die auskommentierte zeile, also [pre]Range.text:=Range.text+str;[/pre]

nicht auskommentiere sondern, mit compilieren lasse, klappt alles wie es soll, wie von zauberhand.
ich habe keine ahnung warum das nicht klappt und [pre]Range.text:=Range.text+str;[/pre]
kann ich ja auch nicht drin lassen, da dann der ganze quelltext mit angezeigt wird

ich habe es auch schon mit[pre]Range.parentElement.insertAdjacentHTML('BeforeEnd' ,'
'+str);[/pre]
probiert und da kommt auch nur quatsch mit soße raus

ich bitte um Hilfe :D

jokerfacehro 17. Jan 2007 17:06

Re: WebBrowser zeigt den Inhalt nicht konform an
 
ich habe grad den text per
Delphi-Quellcode:
Range.parentElement.insertAdjacentHTML('AfterBegin',str);
denn klappt alles, weil der text am anfang also vor dem <a ...> und so weiter reingeschrieben wird :D

sieht aber nicht schön da dann das neueste nicht unten, sondern oben steht ^^

jokerfacehro 17. Jan 2007 21:24

Re: WebBrowser zeigt den Inhalt nicht konform an
 
nach vielen versuchen habe ich die lösung xD

sie ist zu einfach ^^

Delphi-Quellcode:
procedure TForm1.insert_text(str:string);
var
  Range: IHTMLTxtRange;
begin
 Range := ((WebBrowser2.Document as IHTMLDocument2).body as
    IHTMLBodyElement).createTextRange;
  Range.collapse(false);//----> diese zeile raus und dann
  Range.parentElement.insertAdjacentHTML('BeforeEnd',str);
  Range.scrollIntoView(true);
end;
<(^^<) <(^^)> (>^^)>


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz