PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Conditions d'utilisation
  • Appel de code WLangage depuis le code Javascript
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Exécute du code Javascript dans le contexte de la page Web affichée par un champ d'affichage HTML.
Attention : L'option "Interdit l'exécution des scripts JavaScript" doit être décochée dans l'onglet "Général" de la fenêtre de description du champ d'affichage HTML.
Exemple
codeJS est une chaîne = [
var Maintenant = new Date();
alert('Nous sommes le : ' + Maintenant);
]
ExécuteJS(HTM_MonChampHTML, codeJS)
codeJS est une chaîne = [
var Maintenant = new Date();
var resultat = '' + Maintenant;
''+Maintenant;
]
 
ExécuteJS(HTM_MonChampcodeJS, ExécuteJS_Callback)
 
PROCÉDURE INTERNE ExécuteJS_Callback(bSuccès est booléen, ValeurRetour est une chaîne)
SI PAS bSuccès
Erreur(ErreurInfo())
RETOUR
FIN
Info(ValeurRetour)
FIN
Syntaxe
<Résultat> = ExécuteJS(<Champ d'affichage HTML> , <Code Javascript> [, <Procédure WLangage>])
<Résultat> : Booléen
  • Vrai si le code Javascript a été transmis pour exécution au champ,
  • Faux dans le cas contraire.
<Champ d'affichage HTML> : Nom de champ
Nom du champ d'affichage HTML sur lequel le script Javascript doit être exécuté.
<Code Javascript> : Chaîne de caractères
Code Javascript à exécuter. Ce code est exécuté de manière asynchrone. Le résultat de l'exécution du code Javascript peut être connu grâce au paramètre <Procédure WLangage>.
La valeur retournée par le code Javascript correspond à la valeur de l'expression qui se trouve sur la dernière ligne du code Javascript. Il ne faut pas utiliser "return". L'expression à récupérer doit être une chaîne.
<Procédure WLangage> : Nom de procédure optionnel
Procédure WLangage (également nommée "callback") permettant de connaître le résultat de l'exécution du code Javascript. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(bSuccès est un booléen, ValeurRetour est une chaîne)
Cette procédure est appelée une fois l'exécution du code Javascript terminée. Les paramètres de cette procédure sont :
  • <bSuccès> :
    • Vrai si l'exécution du code Javascript s'est correctement terminée,
    • Faux si l'exécution du code Javascript s'est terminée en erreur (erreur dans le code Javascript par exemple). Dans ce cas, il est possible d'obtenir le détail de l'erreur grâce à la fonction ErreurInfo.
      AndroidiPhone/iPad Remarque :
      • Android L'erreur renvoyée est détaillée.
      • iPhone/iPad L'erreur renvoyée est générique.
  • <ValeurRetour> contient la valeur de la dernière expression de l'exécution du code Javascript (valeur retournée).
Remarques
Android

Conditions d'utilisation

Cette fonction est disponible uniquement sur les appareils disposant d'une version d'Android supérieure ou égale à la version 4.4 (api level 19).
Si la fonction est utilisée avec une version antérieure du système, la procédure ne sera pas appelée.
Pour connaître la version du système Android sur laquelle s'exécute l'application, utilisez la fonction SysVersionAndroid.

Appel de code WLangage depuis le code Javascript

Il est possible d'appeler du code WLangage depuis un code Javascript exécuté via la fonction ExécuteJS ou via le code HTML contenu dans le champ d'affichage HTML. Les manipulations à effectuer sont les suivantes :
  1. Dans l'onglet "Général" du champ d'affichage HTML, cochez l'option "Autoriser l'appel de WLangage depuis le code HTML (fonction JavaScript WL.Execute)".
  2. Dans le code du HTML du champ, utilisez WL.Execute pour exécuter une procédure WLangage. La syntaxe à utiliser est la suivante :
    WL.Execute(<Nom procédure WLangage>, <Paramètres>)
    où :
    • <Nom procédure WLangage> correspond au nom de la procédure à exécuter.
    • <Paramètres> correspond à une chaîne de caractères à passer à la procédure.
Il est possible d'appeler du code WLangage depuis un code Javascript exécuté via la fonction ExécuteJS ou via le code HTML contenu dans le champ d'affichage HTML. Les manipulations à effectuer sont les suivantes :
  1. Dans l'onglet "Général" du champ d'affichage HTML, cochez l'option "Autoriser l'appel de WLangage depuis le code HTML (fonction JavaScript WL.Execute)".
  2. Dans le code du HTML du champ, utilisez WL.Execute pour exécuter une procédure WLangage. La syntaxe à utiliser est la suivante :
    WL.Execute(<Nom procédure WLangage> [, <Paramètre 1> [, ... [, <Paramètre N>]]] )
    où :
    • <Nom procédure WLangage> correspond au nom de la procédure à exécuter.
    • <Paramètre N> correspond aux différents paramètres à passer à la procédure :
      • Nombre de paramètres :
        • WindowsiPhone/iPad entre 0 et N.
        • Android entre 0 et 10.
      • Type des paramètres :
        • WindowsiPhone/iPad Les paramètres de la procédure WLangage seront passés selon leur type en tant que boolean, string, number, null.
        • Android Les paramètres de la procédure WLangage seront toujours passés en tant que chaîne de caractères.
Exemple :
  • Procédure WLangage
    PROCÉDURE ProcFromJS(t)
    ToastAffiche("Appelé depuis le JS : " + t)
  • Code du champ HTML :
    s est chaîne = [
    <html>
    <head>
    <title> Un exemple simple
    </title>
    <script>
    function myFunction()
    {
    WL.Execute("ProcFromJS","titaa");
    }
    </script>
    </head>
    <body>
    <h1> Voici une page HTML </h1>
    <p id="demo">Un paragraphe</p>
    <button type="button" onclick="myFunction()">Essayer</button>
    </body>
    </html>
    ]
    HTM_SansNom1 = s
Liste des exemples associés :
WM Dialogue HTML Exemples multiplateforme (WINDEV Mobile) : WM Dialogue HTML
[ + ] Cet exemple vous montre comment dialoguer avec un champ HTML.
Il utilise la fonction WLangage "ExecuteJS" et la fonction Javascript "WL.Execute".
Classification Métier / UI : Code UI
Composante : wd270obj.dll
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Exemple plus fonctionnel en l'état
L'exemple n'est plus fonctionnel en l'état suite à une "évolution" de la fonction.
Suite à un contact avec le ST de PCSoft ils m'ont répondus que les type "complexes" ne sont plus gérés pour permettre de gérer d'autres constructions JavaScript et par compatibilité mobile.

il faut maintenant écrire :

codeJS est une chaîne = [
var Maintenant = new Date();
''+Maintenant;
]

ou

codeJS est une chaîne = [
var Maintenant = new Date();
return ''+Maintenant;
]
Jérôme
07 oct. 2019