1. #1
    Membre habitué Avatar de hammag
    Inscrit en
    février 2006
    Messages
    498
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 498
    Points : 113
    Points
    113

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String pourJS()    {              
    		  return "test";
    }
    SVP

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

    Informations forums :
    Inscription : février 2010
    Messages : 716
    Points : 973
    Points
    973

    Par défaut

    Il te faut ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    executeJS("alert('Appel qui viens de Java.')");
    Bon courage,

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

    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
    716
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 716
    Points : 973
    Points
    973

    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
    498
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 498
    Points : 113
    Points
    113

    Par défaut

    j'ai toujours la même erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("MonApplet_id").pourJS() is not a function
    quand j'appelle la méthode de l'applet dans le javascript

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Inscrit en
    avril 2010
    Messages
    27
    Détails du profil
    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

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo