AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke dynamische elemente einlesen <span id=""></span>
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische elemente einlesen <span id=""></span>

Ein Thema von cyan3552 · begonnen am 27. Dez 2010 · letzter Beitrag vom 28. Dez 2010
Antwort Antwort
cyan3552

Registriert seit: 12. Dez 2010
9 Beiträge
 
#1

AW: dynamische elemente einlesen <span id=""></span>

  Alt 27. Dez 2010, 19:24
Ne leider nur mit einlesen geht es nicht, da TWebbrowser den Quelltext nicht anpasst?
Versucht habe ich es mit:
htmlcode:=WebBrowser1.OleObject.Document.documentElement.innerHTML; Soweit ich es überschauen konnte greifen alle Vorschläge so oder ähnlich auf den Quellcode zu, sodass ich da wohl nicht weiter kommen werde, ohne zu aktualisieren.
Hatte mal irgendwo eine Vorlage zum direkten einlesen vom html quellcode ohne den webbrowser gesehen.
Werde ich mal damit versuchen.

Danke für die Denkanstöße.
Weitere Ideen sind aber immer noch erwünscht.

gruß
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: dynamische elemente einlesen <span id=""></span>

  Alt 27. Dez 2010, 20:02
Guten Abend,

durch wen oder was wird denn das dynamische generiert?
Wie verhält sich die Dynamic den bei einem "normalen" Browser?
Muss man dort jeweils die Seite aktualisieren um einen neuen Wert zu erhalten?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: dynamische elemente einlesen <span id=""></span>

  Alt 27. Dez 2010, 20:08
Hatte mal irgendwo eine Vorlage zum direkten einlesen vom html quellcode ohne den webbrowser gesehen.
Werde ich mal damit versuchen.
Dann verzichtest du auch auf JavaScript. Somit würde ein einfacher XML-Parser reichen. Ansonsten ist 2 Posts drüber die Möglichkeit aufgegriffen worden, JavaScript auf der Seite auszuführen. Wie wäre es mit:
Code:
return document.innerHTML;
?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
cyan3552

Registriert seit: 12. Dez 2010
9 Beiträge
 
#4

AW: dynamische elemente einlesen <span id=""></span>

  Alt 27. Dez 2010, 22:38
Ja, ist jetzt auch nicht der eleganteste Weg, muss jetzt quasi beides am Laufen haben.
Habe den code wieder gefunden war auch bei euch gewesen.
[DP]http://www.delphipraxis.net/5520-html-code-ueber-wininet-downloaden.html[/DP] funzt alles jetzt wunderbar und hackt nicht wie wenn ich alles im Browser neulade xD
Der Java vorschlag fand ich auch gut, brachte aber nicht das was ich mir vorgestellt habe.
Wollte ihn mir gleich nocheinmal durchlese.
return document.innerHTML; was wird damit gemacht?

gruß
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

AW: dynamische elemente einlesen <span id=""></span>

  Alt 27. Dez 2010, 23:26
Im Prinzip ist das eine ganz einfache Funktion. document.innerHTML sollte dem Browser sagen, dass er den aktuellen Quellcode zu liefern hat und den zurückzugeben. Mit return wird diese Rückgabe dann an die Instanz vorher geleitet, die dein Programm ist. Somit solltest du den aktuellen COde haben. Ansonsten hat TWebbrowser aber noch was, das nach SourceCode klingt als Eigenschaft.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#6

AW: dynamische elemente einlesen <span id=""></span>

  Alt 28. Dez 2010, 13:05
Kleines Beispiel:

"Dynamische" Seite mit JavaScript:
Code:
<html>
  <head>
    <script type="text/javascript">
      var counter = 0;
      function tick() {
        document.getElementById("span").innerText=counter;
        counter = counter + 1;
        setTimeout("tick()",1000)
      };
    </script>
  </head>
  <body onload="tick()">
    <span id="span">0</span>
  </body>
</html>
Auslesen des Inhaltes des span-Elements:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption:=WebBrowser1.OleObject.Document.GetElementByID('span').InnerText;
end;
TWebBrowser verwaltet den kompletten Seiteninhalt über COM-Objekte. Ein solches COM-Objekt funktioniert fast wie ein Delphi-Objekt mit Eigenschaften und Methoden.
Das "Document"-Objekt enthält die angezeigte HTML-Seite. Über die Methode "GetElementByID" wir das Objekt mit dem Namen "span" ermittelt und dessen Eigenschaft "InnerText" ausgelesen. Diese Eigenschaft enthält den aktuellen Wert.
Damit der Compiler Code generieren kann, um zur Laufzeit das Objekt "Document" zu finden, muß "OleObject" dazwischen geschaltet werden. Damit gibt es keine Fehlermeldungen mehr wegen undeklarierten Bezeichnern - aber leider funktioniert dann natürlich auch nicht mehr die Programmierhilfe in der Delphi-IDE. Man muß also wissen, wie und auf welche Objekte man zugreifen möchte.
Angehängte Grafiken
Dateityp: jpg Bild_1.jpg (6,0 KB, 11x aufgerufen)
Thomas Nitzschke
  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 09:16 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