Comment exposer les "fonctions natives" à Javascript dans une page web en utilisant Chromium et Delphi 6?
J'ai réussi à intégré le Chrome dans mon Delphi 6 projets avec l'aide de Delphi Chrome Intégré. Maintenant, je veux être en mesure d'exécuter le code Javascript et les résultats retournés à mon hôte Delphi app. Ma méthode actuelle consiste à appeler ExecuteJavascript() et l'utilisation d'un élément du DOM que l'appel Javascript écrit ses résultats, et de sondage de cet élément dans un TTimer méthode de Delphi pour récupérer les résultats. Cependant, j'ai lu sur l'utilisation des fonctions natives et V8 extensions pour avoir le Javascript appel "call back" dans mon code Delphi comme un moyen d'obtenir des résultats plutôt:
http://magpcss.org/ceforum/viewtopic.php?f=7&t=180
Je voudrais essayer cela et je voudrais aussi savoir comment attacher Delphi en fonction des écouteurs d'événement, d'éléments du DOM de la page web (onblur, onmousedown, etc.). Je suis à la recherche d'un certain nombre d'échantillons de me montrer comment faire ces deux choses, si quelqu'un sait où les trouver.
source d'informationauteur Robert Oschler
Vous devez vous connecter pour publier un commentaire.
Attacher des écouteurs est assez facile (seulement dans les anciennes versions de CEF):
Quant à l'étendue des fonctions pour la prise en JavaScript directement les résultats: le coffre ne contient pas (encore?). Semble être le travail en cours.
Modifier:
Se débarrasser de vote via extensions:
Il est en effet possible que votre code JavaScript à appeler de nouveau dans votre Delphi code à l'aide d'extensions. En outre, vous pouvez envoyer les valeurs de JavaScript pour Delphi - ce qui pourrait être utilisé pour transférer des résultats sans avoir besoin de sondage.
En premier dans votre
initialization
section enregistrer l'extension, ce qui crée un objet JavaScript plus tard pour être utilisé lors de l'appel de dos:TMyHandler
'sExecute
sera appelé plus tard.TMyHandler
est défini commeLa mise en œuvre à des fins de démonstration est simple pour l'instant:
Maintenant pour tester l'appel en Delphi à partir de JavaScript, il suffit de faire:
Cela doit afficher la boîte de message disant "Exécuter!".
J'ai tiré sur la démo du script à partir d'un échantillon nommé cefclient que vous pouvez trouver dans le \demos\cefclient dossier dans le composant racine. L'extension de l'échantillon de code est un peu caché et mélangés à d'autres le code de démonstration. Mais d'un intérêt particulier pour nous, c'est la mise en œuvre de
TExtension.Execute
(l'équivalent de monTMyHandler.Execute
). De là, vous pouvez trouver comment faire pour déterminer la fonction est appelée et comment passer des paramètres. (Lien vers le code.)