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.