Guten Morgen,
ich möchte gern über das OleObject einer WebBrowser-Komponente auf verschiedene
HTML-Elemente (schreibend) zugreifen.
Den Schreibzugriff stelle ich mir folgendermaßen vor:
Delphi-Quellcode:
elementID := 'meineUeberschrift'; // es existiert eine entspr. ID im Dokument
WebBrowser1.OleObject.Document.GetElementByID(elementID).innerHTML := inhalt; // inhalt: String
Das funktioniert auch solange das
HTML-Element Kinder d.h. Inhalt haben darf.
Mein Problem ist nun folgendes: ich ermittle zunächst alle Elemente des Dokuments, die eine ID haben. Dann gehe ich diese Elemente in einer Schleife durch und führe
blind (wie oben dargestellt) einen Schreibzugriff auf das Element aus (wann sinnvollerweise tatsächlich geschrieben werden soll ist eine andere Geschichte, lassen wir es mal so stehen).
Ich wünsche mir an dieser Stelle die Möglichkeit, abfragen zu können, ob das
HTML-Element, welches ich gerade "am Wickel" habe, überhaupt "Kinder" haben darf, d.h. ob die Eigenschaft innerHTML existiert bzw. geschrieben werden darf.
Ich habe in der
MSDN-Dok gelesen und auch selbst erlebt, dass die Schnittstelle eine "NotSupported"-
Exception wirft. Das ist eine mögliche Lösung für mein Problem, aber unschön, weil der Debugger das Programm auch bei behandelten Ausnahmen unterbricht
(kann man das abstellen?). Das stört doch schon beim Testlauf.
Ich kann
innerHTML <> ''
prüfen, was aber nur heißt, dass es leer ist, nicht dass es nicht existiert. Leider kann ich nicht
innerHTML <> nil
prüfen, da es wohl kein Zeiger ist.
Nun also meine Frage auf den Punkt gebracht: wie kann ich für ein bestimmtes
HTML-Element prüfen, ob die Eigenschaft
innerHTML
existiert und geschrieben werden kann?
Beste Grüße
Caps