Wie bekomme ich den HTML-Quellcode von TWebBrowser
Wie bekomme ich den source-code vom WebBrowser-Komponente?
Ich möchte Quelltext der aktiven Seite auf die WebBrowser-Komponente und schreibt Sie in eine Memo-Komponente.
Dank.
InformationsquelleAutor Leadri | 2012-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
IPersistStreamInit
- Schnittstelle und die speichern Methode zum speichern der Inhalt des Webbrowser in einen Stream.Wie können wir es schaffen den UMGEKEHRTEN Weg: SetWebBrowserHTML, so re-Injektion der zuvor extrahierten code zurück, WebBrowser (oder TEmbeddedWebBrowser). Ich Stelle mir folgende situation vor: Ein memo-Komponente wird der HTML-Quellcode mit GetWebBrowserHTML, dann kann der Benutzer einige änderungen an der source-code, dann die geänderte source-code ist durch reinjektion zurück in den Web-Browser. Dies wäre ein nettes HTML-editor mit Echtzeit-Vorschau im browser!
Besser:
LStream := TStringStream.Create('', TEncoding.UTF8);
Sie wollte "reverse", alles, was Sie ändern müssen, ist LPersistStreamInit.Speichern LPersistStreamInit.Laden und initialisieren der TStringStream mit etwas (oder pass in eine andere stream).
InformationsquelleAutor RRUZ
Dass gut funktioniert auch:
document
element. Es wird nicht der HTML-Quellcode.Ja du hast Recht, ich benutze es nur zum analysieren einige Daten zur Verfügung, die auf html-Quelle, und mit DOM-Darstellung war ok.
Ich werde upvote deine Antwort, Es ist auf jeden Fall nützlich. Auch ich benutze eine ähnliche Methode in unsere spider zu manipulieren/Parsen von HTML-Code aus einer fremden web-site.
Ich musste bis diese Abstimmung, weil die Seite war ich versucht, um Quelle code hatte der Inhalt geändert von JavaScript, also @rruz Vorschlag hat nicht funktioniert, wie es wieder in der original HTML-Code statt der geändert. Danke.
InformationsquelleAutor Mehmet Fide
Diese wurde gestellt und beantwortet viele Male in der Embarcadero-Foren, mit vielen code-Beispiele veröffentlicht. Suchen in den Archiven.
Das wesentliche ist, dass Sie
Navigate()
auf die gewünschte URL ein, und warten Sie, bis dieOnDocumentComplete
- Ereignis ausgelöst, dannQueryInterface()
dieDocument
Eigenschaft für dieIPersistStreamInit
- Schnittstelle und rufen diesave()
Methode. Erstellen Sie eineTStream
- Objekt-Instanz, wie einTMemoryStream
, wickeln Sie es in einTStreamAdapter
- Objekt, und übergeben Sie dann den adapter ansave()
. Sie können dann laden Sie dieTStream
in dieTMemo
als nötig.InformationsquelleAutor Remy Lebeau