Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TWebbrowser zeigt HTML-Source statt der fertigen Seite (https://www.delphipraxis.net/201226-twebbrowser-zeigt-html-source-statt-der-fertigen-seite.html)

BlueStarHH 3. Jul 2019 08:05

TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Hallo,

ich nutze einen TWebbrowser unter Win10. Dieser zeigt nun *immer* den HTML-Quelltext an und nicht mehr die fertige Seite. Ich lade den Inhalt wie folgt:
Delphi-Quellcode:
procedure WB_LoadDocFromString(WB: TWebBrowser; const HTMLString: string);
var
  V: OleVariant;
  HTMLDocument: IHTMLDocument2;
begin
  WaitForBrowser(WB);
  HTMLDocument := WB.Document as IHTMLDocument2;
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := HTMLString;
  HTMLDocument.Write(PSafeArray(TVarData(V).VArray));
  HTMLDocument.Close;
end;
Diese Prozedur kommt aus der WBFuncs.pas und wurde so jahrelang benutzt. Was ist zu tun?

API 3. Jul 2019 10:02

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Ungetestet:

Delphi-Quellcode:
procedure WB_LoadDocFromString(WB: TWebBrowser; const HTMLString: string);
var
  HTMLStream: TMemoryStream;
begin
  WaitForBrowser(WB);
  if Assigned(WB.Document) then
  begin
    HTMLStream := TMemoryStream.Create;
    try
      HTMLStream.WriteBuffer(Pointer(HTMLString)^, Length(HTMLString));
      HTMLStream.Seek(0, soFromBeginning);
      (WB.Document as IPersistStreamInit).Load(TStreamAdapter.Create(HTMLStream));
    finally
      HTMLStream.Free;
    end;
  end;
end;

BlueStarHH 3. Jul 2019 10:16

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Zitat:

Zitat von API (Beitrag 1435886)
Ungetestet:

Delphi-Quellcode:
procedure WB_LoadDocFromString(WB: TWebBrowser; const HTMLString: string);
var
  HTMLStream: TMemoryStream;
begin
  WaitForBrowser(WB);
  if Assigned(WB.Document) then
  begin
    HTMLStream := TMemoryStream.Create;
    try
      HTMLStream.WriteBuffer(Pointer(HTMLString)^, Length(HTMLString));
      HTMLStream.Seek(0, soFromBeginning);
      (WB.Document as IPersistStreamInit).Load(TStreamAdapter.Create(HTMLStream));
    finally
      HTMLStream.Free;
    end;
  end;
end;

Danke, aber damit besteht das selbe Problem: Es wird nur der HTML-Sourcecode angezeigt.

Außerdem wird mit dieser Lösung nur etwa die Hälfe des Textes dargestellt. (Was wohl am zu kleinen Buffer liegt, aber das ist ein anderes Problem, was mit dem ursprünglichen nichts zu tun hat.)

hoika 3. Jul 2019 10:33

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Hallo,
hast Du mal einen anderen Rechner ausprobiert.

BlueStarHH 3. Jul 2019 10:53

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hoika (Beitrag 1435891)
Hallo,
hast Du mal einen anderen Rechner ausprobiert.

Ja das selbe Problem. Hier ein Bildschimfoto. Auffällig ist, das in diesem Test nur Teile des HTML-Codes angezeigt werden (DOCTYPE usw), andere Teile werden richtig dargestellt ("TEST fett") und andere Teile nur als unformatierter Text.

peterbelow 3. Jul 2019 11:25

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Zitat:

Zitat von BlueStarHH (Beitrag 1435875)
Hallo,

ich nutze einen TWebbrowser unter Win10. Dieser zeigt nun *immer* den HTML-Quelltext an und nicht mehr die fertige Seite. Ich lade den Inhalt wie folgt:

Du bist sicher, dass der verwendete HTML-String keine Syntaxfehler enthält? Wenn Du den gleichen Text in einen html-Datei schreibst und diese per Navigate lädtst, hat das das gleiche Problem?

Standardmäßig emuliert TWebBrowser eine sehr alte Version des Internet Explorers, vielleicht liegt es daran.

HolgerX 3. Jul 2019 11:27

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Hmm...

Kannst Du einmal eine solche HTML Datei als Muster bereitstellen?
Diese sollte ja beim (normalen) öffnen im Browser auch so defekt angezeigt werden.

BlueStarHH 3. Jul 2019 19:10

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite
 
Zitat:

Zitat von peterbelow (Beitrag 1435898)
Du bist sicher, dass der verwendete HTML-String keine Syntaxfehler enthält?

Danke, das wars! Ich hab mir den Quelltext immer über das Kontextmenü vom Webbrowser angeschaut. Da sah er OK aus. Das aber nur, weil der IE den Code vor der Darstellung "korrigiert" hat. Der Originalstring, der an den Webbrowser übergeben wurde, enthielt statt der Tag-Klammern < > die HTML-Entitäten &lt; und &gt;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 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