Wie expose "native Funktionen" Javascript in eine web-Seite mit Chrom und Delphi 6?
Habe ich erfolgreich embedded Chrom in mein Delphi 6 Projekte mit Hilfe von Delphi Chromium Embedded. Jetzt will ich in der Lage, Javascript-code ausführen und die Ergebnisse wieder in meinem host-Delphi-app. Meine aktuelle Methode ist zu nennen, ExecuteJavascript() und die Nutzung ein DOM element, das den Javascript-Aufruf schreibt die Ergebnisse auf, und poll, das element in eine TTimer-Methode von Delphi auf die Ergebnisse abrufen. Allerdings habe ich gelesen, mit nativen Funktionen und V8-Erweiterungen für die Javascript-Aufruf "call-back" in mein Delphi-code als einen Weg, um Ergebnisse zu erhalten, statt:
http://magpcss.org/ceforum/viewtopic.php?f=7&t=180
Ich möchte versuchen, diese und ich würde auch gerne wissen, wie man anfügen, Delphi-basierte Ereignis-Listener, um DOM-Elemente der web-Seite (onblur, onmousedown, etc.). Ich bin auf der Suche für einige Proben, die mir zeigen würde, wie zu tun, diese beiden Dinge, wenn jemand weiß, wo Sie zu finden sind.
InformationsquelleAutor der Frage Robert Oschler | 2011-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anbringen Zuhörer ist ganz einfach (nur in älteren Versionen von CEF):
Hinsichtlich der erweiterten Funktionen, um JavaScript-Ergebnisse direkt: der Kofferraum nicht enthalten Sie (noch?) nicht. Scheint die work-in-progress.
Bearbeiten:
Loszuwerden polling über Erweiterungen:
Es ist in der Tat möglich, den JavaScript-code zum Aufruf zurück in Ihre Delphi-code die Verwendung von Erweiterungen. Darüber hinaus können Sie senden von Werten von JavaScript, Delphi - dies könnte verwendet werden, um die Ergebnisse übertragen werden können, ohne die Notwendigkeit zur Umfrage.
Erste in Ihrer
initialization
Abschnitt registrieren Sie die Erweiterung, die erstellt ein JavaScript-Objekt, das später beim Aufruf zurück:TMyHandler
'sExecute
werden später aufgerufen.TMyHandler
ist definiert alsDie Umsetzung für die demonstration ist einfach für jetzt:
Jetzt zum testen den Aufruf in Delphi von JavaScript einfach:
Dies sollte die Anzeige der message-box sagen: "Ausführen!".
Zog ich die demo-Skript aus einer Probe, die mit Namen cefclient die Sie hier finden können in der \demos\cefclient Ordner in der Komponente root-dir. Die Erweiterung Beispiel-code ist ein bisschen versteckt und mischte sich mit anderen demo-code. Aber von besonderem Interesse für uns ist die Umsetzung der
TExtension.Execute
(das äquivalent zu meinemTMyHandler.Execute
). Dort finden Sie, wie um zu bestimmen, welche Funktion aufgerufen wird und wie die Parameter übergeben. (Link zu den code.)InformationsquelleAutor der Antwort Heinrich Ulbricht