OVH Cloud OVH Cloud

Une applet peut-elle "commander" un layer dans une page HTML ?

8 réponses
Avatar
Debug
Bonjour à tous,

Voilà le topo : j'ai écrit une applet que je voudrais placer à l'intérieur
d'un "layer", dans une page HTML.
Je voudrais savoir si mon applet peut "communiquer" avec l'extérieur en
envoyant (par exemple) des messages à du code JavaScript de la page...

Exemple :
Comment l'applet Java peut-elle dire au "layer" dans lequel elle se trouve
de se déplacer sur la gauche ou sur la droite ?
L'applet peut-elle générér des événements que le JavaScript pourrait
interprêter ?

J'espère ne pas être trop confus, et je vous remercie d'avance de vos
réponses !

Debug ;-)

8 réponses

Avatar
Emmanuel Feller
Bonjour,
Oui c'est possible, c'est exactement la même chose que je disais dans le
thread "ouverture d'un fichier dans un jar".
J'ai ca dans mes archives et je n'ai pas encore eu le temps de fouiller,
mais promis d'ici ce soir (tard) je te donne ca ;)
Emmanuel
"Debug" a écrit dans le message de
news:411e23be$0$306$
Bonjour à tous,

Voilà le topo : j'ai écrit une applet que je voudrais placer à l'intérieur
d'un "layer", dans une page HTML.
Je voudrais savoir si mon applet peut "communiquer" avec l'extérieur en
envoyant (par exemple) des messages à du code JavaScript de la page...

Exemple :
Comment l'applet Java peut-elle dire au "layer" dans lequel elle se trouve
de se déplacer sur la gauche ou sur la droite ?
L'applet peut-elle générér des événements que le JavaScript pourrait
interprêter ?

J'espère ne pas être trop confus, et je vous remercie d'avance de vos
réponses !

Debug ;-)




Avatar
Emmanuel Feller
J'ai réussi à faire une petite pause plus tôt que prévu ;)

Je n'ai pas retrouvé mon exemple simple de code, mais j'ai retrouvé une page
qui explique le fonctionnement.
Ca parle de netscape 3 et 4, mais ca marche tès bien avec IE6 (pas testé
netscape6).
http://developer.netscape.com/docs/manuals/enterprise/wrijsap/lc.htm#1022443

Emmanuel

"Emmanuel Feller" a écrit dans le message de
news:411e2e85$0$24533$
Bonjour,
Oui c'est possible, c'est exactement la même chose que je disais dans le
thread "ouverture d'un fichier dans un jar".
J'ai ca dans mes archives et je n'ai pas encore eu le temps de fouiller,
mais promis d'ici ce soir (tard) je te donne ca ;)
Emmanuel
"Debug" a écrit dans le message de
news:411e23be$0$306$
Bonjour à tous,

Voilà le topo : j'ai écrit une applet que je voudrais placer à
l'intérieur


d'un "layer", dans une page HTML.
Je voudrais savoir si mon applet peut "communiquer" avec l'extérieur en
envoyant (par exemple) des messages à du code JavaScript de la page...

Exemple :
Comment l'applet Java peut-elle dire au "layer" dans lequel elle se
trouve


de se déplacer sur la gauche ou sur la droite ?
L'applet peut-elle générér des événements que le JavaScript pourrait
interprêter ?

J'espère ne pas être trop confus, et je vous remercie d'avance de vos
réponses !

Debug ;-)








Avatar
Debug
Merci beaucoup ! Je vais essayer de me débrouiller avec ça et je ferai
peut-être appel au forum en cas de besoin ! :))

A++

Debug ;-)

"Emmanuel Feller" a écrit dans le message de
news:411e3775$0$24537$
J'ai réussi à faire une petite pause plus tôt que prévu ;)

Je n'ai pas retrouvé mon exemple simple de code, mais j'ai retrouvé une
page

qui explique le fonctionnement.
Ca parle de netscape 3 et 4, mais ca marche tès bien avec IE6 (pas testé
netscape6).

http://developer.netscape.com/docs/manuals/enterprise/wrijsap/lc.htm#1022443


Emmanuel

"Emmanuel Feller" a écrit dans le message de
news:411e2e85$0$24533$
Bonjour,
Oui c'est possible, c'est exactement la même chose que je disais dans le
thread "ouverture d'un fichier dans un jar".
J'ai ca dans mes archives et je n'ai pas encore eu le temps de fouiller,
mais promis d'ici ce soir (tard) je te donne ca ;)
Emmanuel
"Debug" a écrit dans le message de
news:411e23be$0$306$
Bonjour à tous,

Voilà le topo : j'ai écrit une applet que je voudrais placer à
l'intérieur


d'un "layer", dans une page HTML.
Je voudrais savoir si mon applet peut "communiquer" avec l'extérieur
en



envoyant (par exemple) des messages à du code JavaScript de la page...

Exemple :
Comment l'applet Java peut-elle dire au "layer" dans lequel elle se
trouve


de se déplacer sur la gauche ou sur la droite ?
L'applet peut-elle générér des événements que le JavaScript pourrait
interprêter ?

J'espère ne pas être trop confus, et je vous remercie d'avance de vos
réponses !

Debug ;-)












Avatar
JScoobyCed
Un applet peu communiquer avec la page dans laquelle elle se situe par
javascript (et par consequence toute page de la hierarchie). Un moyen
que j'ai decouvert l'annee derniere en travaillant sur la question. Il
doit y avoir monpost sur ce forum d'ailleurs, ou j'expliquais comment faire.
Le principe vient du fait que plusieurs browser peuvent executer du
javascript directement depuis la barre d'addresse.
Essayez de taper: "javascript:alert('Ce
browser%20supporte%20l'appel%20de%20javascript');" dans la barre de
lien (au lieu de "http://blabla.com"). Note: souvent, un espace au lieu
de '%20' fonctionne aussi, mais pour certain caractere il est necessaire
de convertir en UTF-8 d'abord)
Cela doit faire un 'popup' avec le message indique.
J'ai teste: IE5 et IE6, Mozilla, Netscape (suis plus sur de quelle
version), Firefox, Opera.
Maintenant, pour exploiter ceci, il suffit de recuperer l'Objet
AppletContext de l'applet et du faire un appel a showDocument(URL) et le
tour est joue.
<sniplet>
public class monApplet {
// ...
// Votre code peut faire appel cette methode...
public void commandeJS(String jsCode) {
URL monUrl = null;
try {
monUrl = new URL("javascript:" + jsCode);
} catch(MalformedURLException mue) {
// Gasp, quelquechose ne tourne pas rond... jsCode mal formate ??
}
if(monUrl!=null) {
this.getAppletContext().showDocument(monURL);
}
}

--
JScoobyCed
What about a JScooby snack Shaggy ? ... Shaggy ?!
Avatar
Debug
Je vais faire des essais avec la technique décrite par Emmanuel, mais pour
l'instant j'ai rapidement fait des essais avec la dernière technique
évoquée, et ça ne fonctionne pas du tout... :((

(Je précise que je n'ai jamais fait de JavaScript et que j'ai relativement
peu d'expérience en Java, donc il se peut que je me sois gourré qqpart)...


Dans ma page HTML de test, dans la section dédiée au JavaScript, j'ai ceci :

function testProc()
{
alert("Passage dans la fonction testProc()");
}


Et dans mon applet, j'appelle ceci :

String jsCode = "testProc();";
URL monUrl = null;
try
{
monUrl = new URL("javascript:" + jsCode);
} catch(MalformedURLException mue) {}

if(monUrl!=null)
{
this.getAppletContext().showDocument(monUrl);
}


... ça ne fonctionne pas du tout ! Est-ce que ça fonctionne chez vous ? Il y
a quelque-chose que j'ai oublié ? Faut-il absolument des paramètres à
l'appel du JavaScript ? Je tourne en rond... :((

Merci d'avance de votre aide ! Je vais essayer ce que suggérait Emmanuel...

A++

Debug ;-)
Avatar
JScoobyCed
Bonjour,

J'ai teste ce code et il fonctionne (dans un navigateur web, pas dans
l'Appletviewer):

/**
* Javascript test.
*/
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JApplet;

public class Applet extends JApplet {

public void start() {
commandeJS("alert('toto');");
}

public void commandeJS(String jsCode) {
URL monUrl = null;
try {
monUrl = new URL("javascript:" + jsCode);
} catch(MalformedURLException mue) {
// Gasp, quelquechose ne tourne pas rond... jsCode mal formate ??
}
if(monUrl!=null) {
this.getAppletContext().showDocument(monUrl);
}
}
}
/*
* Fin de code
*/

Cedric
Avatar
Sebastien Annedouche
Tu peux utiliser le package javascript de netscape (LiveConnect).
Va voir dans la partie 2 : http://devedge.netscape.com/library/manuals/2000/javascript/1.5/guide/

Ca fonctionne sous ie, netscape et mozilla (au moins)

Sébastien


JScoobyCed wrote:
Bonjour,

J'ai teste ce code et il fonctionne (dans un navigateur web, pas dans
l'Appletviewer):

/**
* Javascript test.
*/
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JApplet;

public class Applet extends JApplet {

public void start() {
commandeJS("alert('toto');");
}

public void commandeJS(String jsCode) {
URL monUrl = null;
try {
monUrl = new URL("javascript:" + jsCode);
} catch(MalformedURLException mue) {
// Gasp, quelquechose ne tourne pas rond... jsCode mal formate ??
}
if(monUrl!=null) {
this.getAppletContext().showDocument(monUrl);
}
}
}
/*
* Fin de code
*/

Cedric


Avatar
Debug
Merci à vous deux pour vos réponses ! Je vais essayer tout ça dès que
possible !

Je précise néanmoins que j'écris une applet "Java 1.1" pour être compatible
avec le maximum de navigateurs (à moins que je me plante complètement).
Je compile donc de cette manière : "javac MonFichier.java -target 1.1"

==> Ceci peut-il empêcher vos solutions de fonctionner ??

A++

Debug ;-)