Einzelnen Beitrag anzeigen

Thom

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

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.
Miniaturansicht angehängter Grafiken
bild_1.jpg  
Thomas Nitzschke
  Mit Zitat antworten Zitat