Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Frage zu .innerHTML und IHTMLDocument2 (https://www.delphipraxis.net/108663-frage-zu-innerhtml-und-ihtmldocument2.html)

spiderb 17. Feb 2008 13:48


Frage zu .innerHTML und IHTMLDocument2
 
Hallo erstmal,
ich habe ein problem damit, den Quelltext einer Internetseite aus einem IHTMLDocument2 auszulesen.
Duch googlen bin ich auf folgenen code gestoßen :
Delphi-Quellcode:
memo1.text:= (WebBrowser1.Document as IHTMLDocument2).innerHTML ;
Doch hierbei kommt delphi mit ".innerHTML" nicht zurecht und sagt "Undefinierter Bezeichner: 'innerHTML'"
Kann ich sonst auch anders aus dem IHTMLDocument2 den quelltext auslesen?
Ich habe es mit
Delphi-Quellcode:
memo1.text:= (WebBrowser1.Document as IHTMLDocument2).toString ;
probiert aber da bekomme ich nur den Wert "[object]" geliefert.
Kann mir jemand helfen?

marabu 17. Feb 2008 13:56

Re: Frage zu .innerHTML und IHTMLDocument2
 
Herzlich willkommen in der Delphi-PRAXiS, spiderb.

das Dokument hat keine Eigenschaft innerHTML:

Delphi-Quellcode:
memo1.text := (WebBrowser1.Document as IHTMLDocument2).body.innerHTML;
Freundliche Grüße

Larsi 17. Feb 2008 13:57

Re: Frage zu .innerHTML und IHTMLDocument2
 
Hi,
herzlich Willkommen in der DP :dp: :dp: :dp:
Zu deiner Frage hab ich auch ne Frage: Du willst doch den Code eines Webbrowsers haben, oder?
Antwort:
Delphi-Quellcode:
var htmlcode: string;
begin
  htmlcode:=WebBrowser1.OleObject.Document.Body.InnerHtml;

Hilft das???


MFG Lars Wiltfang



Edit: Wohl zu spät!!!

spiderb 17. Feb 2008 14:01

Re: Frage zu .innerHTML und IHTMLDocument2
 
super klappt =)
danke !!
:dp: :dp:

wschrabi 20. Aug 2012 14:09

AW: Frage zu .innerHTML und IHTMLDocument2
 
HI,
bitte um Hilfe:
Habe das gleiche Problem wie es TOMS (letzter blog unter http://forum.delphi-treff.de/archive...p/t-13576.html) schildert.

Es kommt immer "ZUgriff Verweigert" habe IE 9 und XP bzw WIN 7.

Kann mir da jemand helfen, wie ich das wegbekomme?
DANKE

Thom 20. Aug 2012 14:26

AW: Frage zu .innerHTML und IHTMLDocument2
 
Zitat:

Zitat von wschrabi (Beitrag 1178903)
IE 9 und XP [...]

Sicher? :gruebel:

wschrabi 20. Aug 2012 16:23

AW: Frage zu .innerHTML und IHTMLDocument2
 
Naja den letzten IE halt, mit XP und WIN 7.
Aber soviel ich herausgegoogled habe, hat das mit Cross-side scripting zu tun. AUch wenn ich XSS ausschalte in IE bleibt das Problem.:?:

Thom 20. Aug 2012 17:18

AW: Frage zu .innerHTML und IHTMLDocument2
 
Hast Du mal eine konkrete HTML-Datei zum testen?

wschrabi 21. Aug 2012 08:02

AW: Frage zu .innerHTML und IHTMLDocument2
 
Leider ist der host nur von der uni aus abonniert und erreichbar.

Thom 21. Aug 2012 10:51

AW: Frage zu .innerHTML und IHTMLDocument2
 
Du könntest doch aber selbst einmal eine HTML-Datei (ohne großen Inhalt) zusammenstellen, damit man das Zugriffsproblem reproduzieren, testen und evtl. eine Lösung erarbeiten kann.
Ohne dem kann man nur die :glaskugel: befragen.

wschrabi 21. Aug 2012 11:52

AW: Frage zu .innerHTML und IHTMLDocument2
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja danke, also ich hab die html wo die frames drin sind angehängt. Reicht das? (Ich glaube nicht)

Thom 21. Aug 2012 12:48

AW: Frage zu .innerHTML und IHTMLDocument2
 
Danke für das Beispiel!

Das Frameset läßt sich ohne Probleme im IE8 (XP, SP3) laden. Auch beim Laden in eine TWebBrowser-Komponente gibt es keine Fehlermitteilungen. Und der Zugriff über
Delphi-Quellcode:
ShowMessage(WebBrowser1.OleObject.Document.Body.InnerHtml);
funktioniert ebenfalls.

Jetzt bin ich etwas ratlos: Worin genau besteht bei Dir das Problem? Unter welchen Umständen treten bei Dir Fehlermeldungen auf?

wschrabi 21. Aug 2012 13:23

AW: Frage zu .innerHTML und IHTMLDocument2
 
Danke TOM,
ich möchte das TOP Frame durchsuchen (innerhtml)
Aber ich bekomme immer die ZUgriff verweigert.

AUch möchte ich im TOP Frame im Form eine input text feld setzen.
Ich glaube Du hast nur das frameskelette gecheckt.
Aber wie greife ich auf das top frame zu?

Danke herzlichst für dein hilfe.

Thom 21. Aug 2012 14:45

AW: Frage zu .innerHTML und IHTMLDocument2
 
Zugriff auf den oberen Frameinhalt bekommst Du über
Delphi-Quellcode:
ShowMessage(WebBrowser1.OleObject.Document.All.Top.InnerHtml);
. Nur leider besteht der Inhalt der Eigenschaft InnerHtml aus einem leeren String. Die Gründe dafür sind - wie Du schon vermutetest - Sicherheitsbeschränkungen seitens des IE's:

Zitat:

Zitat von http://msdn.microsoft.com/en-us/library/ie/ms535250(v=vs.85).aspx
You can access the frame object's properties (but not its contents)...

Wenn Dich nur der obere Frameinhalt interessiert, wäre eine Lösung, die mir spontan einfällt, nur Frame-Top in der TWebBrowser-Komponente zu öffnen.

wschrabi 21. Aug 2012 16:23

AW: Frage zu .innerHTML und IHTMLDocument2
 
Danke, TOM, leider brauche ich beide Frames. Ich hab das so jetzt gelöst. Ich schreibe in die Zwischenablage per Programm den String den ich in das TEXT Feld schreiben lassen wollte, dann klicke ich ins Frame Feld und tippe STRG-V.
Ist zwar nur halbautomatisch, aber ganz automatisch wollte ich es eh nicht machen. Besten Dank jedoch für Deine Hilfe.

Thom 21. Aug 2012 16:46

AW: Frage zu .innerHTML und IHTMLDocument2
 
Gern geschehen. Nur schade, daß es nicht vollständig funktioniert...
Das ist ein typisches Beispiel dafür, daß man es mit der (vermeintlichen) Sicherheit auch übertreiben kann. :roll:

wschrabi 12. Jan 2016 17:20

AW: Frage zu .innerHTML und IHTMLDocument2
 
Danke hat sich erledigt

vagtler 12. Jan 2016 17:57

AW: Frage zu .innerHTML und IHTMLDocument2
 
Nach 3,5 Jahren schon? Krass. :mrgreen:


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