![]() |
TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesbar?
nur mal so am Rande...
Es geht um ![]() Ist da diesbezüglich schon was bekannt? ...event. auch, wie der Code dann umzuschreiben wäre, und zwar möglichst so, dass er anschließend mit beiden Explorer-Versionen, dem IE6 u. dem IE7, funktioniert? mfg |
Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb
Hallo,
zuerst bin ich beim Lesen deines Beitrags leicht erschrocken, aber dann hat die Vernunft doch noch gesiegt: Ich müsste schon Rückmeldungen von meinen Kunden erhalten haben, wenn mein Code seit Umstellung auf IE7 nicht mehr funktionieren würde. Nur wegen eines kleinen Restes Paranoia habe ich meine eigenen Funktionen schnell noch mal getestet - und sie funktionieren noch. Der Code von Thomas verwendet die gleichen Schnittstellen und sollte auch weiterhin funktionieren. Eventuell solltest du mal auf einer anderen Maschine testen. Vielleicht ist deine Installation beschädigt? Freundliche Grüße |
Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb
Wann liest du den Code aus? ist wirklich schon das Dokument geladen under DOM aufgebaut?
|
Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb
@marabu, das Programm läuft auf meinem alten PC ohne Problem. Habe noch ein weiteres XP und W2k auf dem jetzigen installiert, beide ebenfalls noch mit dem alten IE6, da läuft das Prog auch ohne Schwierigkeiten. Den IE7 hatte ich schon vor ca. 6 Wochen installiert. Letzte Woche hat sich mir dann eine nochmalige automatische Neu-Installation des IE7 quasi aufgedrängt und da mein bisheriger IE7 noch nicht die aller aller letzte Version war, habe ich das auch nochmal durchführen lassen, mit DeInstallation des bisherigen IE7... Vielleicht ist ja das diesbezügliche Procedere noch nicht ganz ausgereift und dabei was schiefgegangen(?)...
@Bernhard, das Auslesen über das DOM (bzw. IHTMLKocument2 u. document.body.innerHTML) funktioniert ja. Nur die Methode über das IPersistStreamInit nicht. Sicherheitshalber habe ich natürlich auch dieses ReadyState vor dem Func-Aufruf erst noch mal befragt:
Delphi-Quellcode:
aber leider ohne Erfolg.
while WebBrowser1.ReadyState < ReadyState_Interactive do Application.ProcessMessages;
RichEdit3.Lines.Text := getBrowserHTML(WebBrowser1); |
Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb
Vielleicht möchtest du ja mal folgenden Code testen.
Ich verwende auch das Interface IPersistStreamInit; aber etwas anderst. Man könnte übrigens auch das (ältere) Interface IPersistStream benützen; es hat (mit einer Ausnahme) die gleichen Methoden.
Delphi-Quellcode:
procedure Document_SetHTML(Document: IDispatch; const HTMLCode: string);
var ms: TStringStream; begin if Assigned(Document) then begin ms := TStringStream.Create(HTMLCode); try ms.Seek(0, 0); OleCheck((Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms))); finally ms.Free; end; end; end; function Document_GetHTML(Document: IDispatch):string; var ms: TStringStream; begin Result := ''; if Assigned(Document) then begin ms := TStringStream.Create(Result); try OleCheck((Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms),False)); Result := ms.DataString; finally ms.Free; end; end; end; procedure WB_SetHTML(WebBrowser: TWebBrowser; const HTMLCode: string); begin if not Assigned(WebBrowser.Document) then WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages; Document_SetHTML(WebBrowser.Document, HTMLCode); end; function WB_GetHTML(WebBrowser: TWebBrowser): string; begin Result := Document_GetHTML(WebBrowser.Document); end; |
Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb
@shmia, thx für deinen Test-Code. Ich habe ihn erst mit IPersistStreamInit und danach nochmal mit nur dem IPersistStream ausprobiert, leider aber jedesmal nur eine Exception zurückbekommen. Zuerst eine der Klasse EOleSysError mit der Meldung 'Das System kann die angegebene Datei nicht finden' und danach eine der Klasse EIntfCastError mit der Meldung 'Interface nicht unterstützt'.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz