AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TWebbrowser zeigt HTML-Source statt der fertigen Seite
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser zeigt HTML-Source statt der fertigen Seite

Ein Thema von BlueStarHH · begonnen am 3. Jul 2019 · letzter Beitrag vom 3. Jul 2019
Antwort Antwort
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 09:05
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?
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#2

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 11:02
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;
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 11:16
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.)

Geändert von BlueStarHH ( 3. Jul 2019 um 11:56 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 11:33
Hallo,
hast Du mal einen anderen Rechner ausprobiert.
Heiko
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 11:53
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.
Miniaturansicht angehängter Grafiken
webbrowser.png  
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#6

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 12:25
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.
Peter Below
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#7

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 12:27
Hmm...

Kannst Du einmal eine solche HTML Datei als Muster bereitstellen?
Diese sollte ja beim (normalen) öffnen im Browser auch so defekt angezeigt werden.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TWebbrowser zeigt HTML-Source statt der fertigen Seite

  Alt 3. Jul 2019, 20:10
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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