Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre habitué Avatar de hammag
    Inscrit en
    février 2006
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 493
    Points : 100
    Points
    100

    Par défaut Applet: Appeler une fonction Java dans le code du JavaScript

    Bonjour,

    j'ai une fonction dans une applet java qui retourne un String et je veux appeler cette fonction dans le code javascript.
    en cherchant sur le net j'ai essayé plusieurs solutions mais sans succès :
    Code :
    1
    2
     
    var connectExc = document.getElementById("MonApplet_id").pourJS();
    la console js renvoie l'erreur
    document.getElementById("MonApplet_id").pourJS() is not a function

    Code :
    1
    2
     
    var connectExc = document.getElementById("MonApplet_id").pourJS;
    pas d'erreur dans la console js mais la variable connectExc est vide.

    j'ai essayé aussi:
    Code :
    1
    2
    3
    4
    5
     
    var connectExc = document.MonApplet_name.pourJS;
    et 
     
    var connectExc = document.MonApplet_name.pourJS();
    mais toujours la même réponse.

    pour info voici mon applet
    Code :
    1
    2
    3
    4
    5
     
    <applet CODEBASE="D:\eclipse\workspace\Applet\bin" code="MonApplet" name="MonApplet_name" id ="MonApplet_id"
            width=200  height=100 
            mayscript=true > 
    </applet>
    et la fonction pouJS dans l'applet
    Code :
    1
    2
    3
    4
     
    public String pourJS()    {              
    		  return "test";
    }
    SVP

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    février 2010
    Messages
    694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 694
    Points : 875
    Points
    875

    Par défaut

    Il te faut ce code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public final void executeJS(String s)
    	 {
    	     String s1 = null;
    	     boolean flag = false;
    	     try
    	     {
    	         Method method = null;
    	         Method method1 = null;
    	         Object obj = null;
    	         Class class1 = Class.forName("netscape.javascript.JSObject");
    	         Method amethod[] = class1.getMethods();
    	         for(int i = 0; i < amethod.length; i++)
    	         {
    	             if(amethod[i].getName().compareTo("getWindow") == 0)
    	             {
    	                 method = amethod[i];
    	                 continue;
    	             }
    	             if(amethod[i].getName().compareTo("eval") == 0)
    	                 method1 = amethod[i];
    	         }
    	         Object aobj[] = new Object[1];
    	         aobj[0] = this;
    	         obj = method.invoke(class1, aobj);
    	         aobj[0] = s;
    	         Object obj1 = method1.invoke(obj, aobj);
    	         if(obj1 instanceof String)
    	             s1 = (String)obj1;
    	         else
    	             s1 = obj1.toString();
    	         flag = true;
    	     }
    	     catch(InvocationTargetException invocationtargetexception)
    	     {
    	         s1 = "" + invocationtargetexception.getTargetException();
    	     }
    	     catch(Exception exception)
    	     {
    	         s1 = "" + exception;
    	     }
    	     if(!flag)
    	         System.out.println("eval failed with error " + s1 + " expression : " + s);
    	 }
    Cette fonction prend l'appel javascript que tu souhaites dans le string en paramètre :

    Par exemple :

    Code :
    executeJS("alert('Appel qui viens de Java.')");
    Bon courage,

  3. #3
    Membre habitué Avatar de hammag
    Inscrit en
    février 2006
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 493
    Points : 100
    Points
    100

    Par défaut

    oui, mais tu ne m'a pas dis comment appeler la fonction executeJS dans javascript

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    février 2010
    Messages
    694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 694
    Points : 875
    Points
    875

    Par défaut

    A oui pardon dans l'autre sens.

    tu as peut-être mis ton applet dans un formulaire ?

    document.form.applet.method()

  5. #5
    Membre habitué Avatar de hammag
    Inscrit en
    février 2006
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 493
    Points : 100
    Points
    100

    Par défaut

    j'ai toujours la même erreur
    Code :
    1
    2
     
    document.getElementById("MonApplet_id").pourJS() is not a function
    quand j'appelle la méthode de l'applet dans le javascript

    Code :
    1
    2
     
    var connectExc = document.forms[0].MonApplet_name.pourJS();
    javascript ne reconnait pas que pourJS() est une méthode de l'applet.

  6. #6
    Invité de passage
    Profil pro salma isims
    Inscrit en
    avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Nom : salma isims

    Informations forums :
    Inscription : avril 2010
    Messages : 27
    Points : 4
    Points
    4

    Par défaut

    Bonsoir
    Bon j'ai créer une Applet dans laquelle je sélectionne des champs je veux récupérer les valeurs sélectionnées.
    Pour m'aider juste je veux comment envoyer des données dans un ArrayList d'une applet à une jsp
    Merci pour m'aider c é vraiment très urgent

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •