Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Applet exécutée depuis un formulaire HTML+Javascript

3 réponses
Avatar
Maldo
Bonjour à tous,

J'ai, il y a 3/4 ans, codé une applet s'exécutant à partir d'un formulaire
Web en utilisant une JRE 1.3.
Je dois la réutiliser maintenant mais avec un JRE 1.5.
Le code HTML fait appel à du code Javascript qui exécute une fonction
précise de mon applet.
Au chargement de la page, l'applet est bien chargée, pas d'erreur.
Mais lorsque je click sur le bouton exécutant le code Javascript exécutant
la fonction de mon applet, le navigateur me pète une erreur Javascript du
type "document.appletTest1.test is not a function".

Voici ma config:
- Navigateur IE et Firefox (dernières versions)
- JRE 1.5_06 (+ dernières MAJ)
- OS Win2000 Pro + SP4
- Page HTML suivante:

<script language="JavaScript">
var _info = navigator.userAgent;
var _ns = (navigator.appName.indexOf("Netscape") >= 0
&& ((_info.indexOf("Win") > 0
&& _info.indexOf("Win16") < 0
&& java.lang.System.getProperty("os.version").indexOf("3.5") < 0)
|| (_info.indexOf("Sun") > 0)
|| (_info.indexOf("Linux") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
var _ie = (_info.indexOf("MSIE") > 0
&& _info.indexOf("Win") > 0
&& _info.indexOf("Windows 3.1") < 0);
</script>
<script language="JavaScript">
function testit() {
document.getElementById('lblOutputText').innerHTML =
document.appletTest1.test();
}

if (_ie == true)
document.writeln('<OBJECT
classID="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" NAME="appletTest1"
WIDTH=100 HEIGHT=30
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Vers
ion=1,2,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6)
document.writeln('<EMBED type="application/x-java-applet;version=1.3"
NAME="appletTest1" CODE="StartupAppletFlow" ARCHIVE="applet.jar" WIDTH=100
HEIGHT=30 scriptable="true"
pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><N
OEMBED><XMP>');
</script>
<APPLET NAME="appletTest1" CODE="StartupAppletFlow" WIDTH=100
HEIGHT=30></XMP>
<PARAM NAME="code" VALUE="StartupAppletFlow">
<PARAM NAME="archive" VALUE="applet.jar">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="scriptable" VALUE=true>
alt = "Your browser understand the &lt;APPLET&lt; tag but isn't running
the applet, for some reason."
Your browser is completely ignoring the &lt;APPLET&lt; tag !
</APPLET>

</NOEMBED></EMBED></OBJECT>


<label id="lblOutputText">This text will be replaced by the applet</label>
<br><br>
<input value="Click" type=button onClick="testit()"><br>


Mon applet possède la fonction "public String testit()" retournant
uniquement un "Hello World" pour l'instant
La fonction init() de l'applet appel la méthode testit() et je vois bien le
message "Hello World" dans mon fomulaire ..
Mais dès que je click sur le bouton "Click" ... erreur Javascript .. la
fonction testit() n'est pas connue ou reconnue !

Ce qui est étrange est que cette technique fonctionnait bien avec un JRE 1.3
...
Y a t-il eu des changements sur les JRE 1.4 et 1.5 ??
Quelqu'un a déjà rencontré ce problème ?

Merci :)
A+

3 réponses

Avatar
TestMan
Bonjour,

En premier, Vérifier bien que le code exécuté par le navigateur indique
que l'applet est "scriptable" (pas sur que ce soit le cas pour votre
code sous IE par exemple).

Ensuite, vérifier que votre navigateur autorise le JavaScript à
"scripter" des composants (activex dans le cas de IE) ...

Pas mal de navigateurs empèchent de scrpter des composants depuis le
javascript, car c'est une des techniques utilisée pour contourner les
protections des barrières ...

A+

TM

Bonjour à tous,

J'ai, il y a 3/4 ans, codé une applet s'exécutant à partir d'un formulaire
Web en utilisant une JRE 1.3.
Je dois la réutiliser maintenant mais avec un JRE 1.5.
Le code HTML fait appel à du code Javascript qui exécute une fonction
précise de mon applet.
Au chargement de la page, l'applet est bien chargée, pas d'erreur.
Mais lorsque je click sur le bouton exécutant le code Javascript exécutant
la fonction de mon applet, le navigateur me pète une erreur Javascript du
type "document.appletTest1.test is not a function".

Voici ma config:
- Navigateur IE et Firefox (dernières versions)
- JRE 1.5_06 (+ dernières MAJ)
- OS Win2000 Pro + SP4
- Page HTML suivante:

<script language="JavaScript">
var _info = navigator.userAgent;
var _ns = (navigator.appName.indexOf("Netscape") >= 0
&& ((_info.indexOf("Win") > 0
&& _info.indexOf("Win16") < 0
&& java.lang.System.getProperty("os.version").indexOf("3.5") < 0)
|| (_info.indexOf("Sun") > 0)
|| (_info.indexOf("Linux") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
var _ie = (_info.indexOf("MSIE") > 0
&& _info.indexOf("Win") > 0
&& _info.indexOf("Windows 3.1") < 0);
</script>
<script language="JavaScript">
function testit() {
document.getElementById('lblOutputText').innerHTML > document.appletTest1.test();
}

if (_ie == true)
document.writeln('<OBJECT
classID="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" NAME="appletTest1"
WIDTH0 HEIGHT0
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Vers
ion=1,2,0,0"><NOEMBED><XMP>');
else if (_ns == true && _ns6)
document.writeln('<EMBED type="application/x-java-applet;version=1.3"
NAME="appletTest1" CODE="StartupAppletFlow" ARCHIVE="applet.jar" WIDTH0
HEIGHT0 scriptable="true"
pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><N
OEMBED><XMP>');
</script>
<APPLET NAME="appletTest1" CODE="StartupAppletFlow" WIDTH0
HEIGHT0></XMP>
<PARAM NAME="code" VALUE="StartupAppletFlow">
<PARAM NAME="archive" VALUE="applet.jar">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="scriptable" VALUE=true>
alt = "Your browser understand the &lt;APPLET&lt; tag but isn't running
the applet, for some reason."
Your browser is completely ignoring the &lt;APPLET&lt; tag !
</APPLET>

</NOEMBED></EMBED></OBJECT>


<label id="lblOutputText">This text will be replaced by the applet</label>
<br><br>
<input value="Click" type=button onClick="testit()"><br>


Mon applet possède la fonction "public String testit()" retournant
uniquement un "Hello World" pour l'instant
La fonction init() de l'applet appel la méthode testit() et je vois bien le
message "Hello World" dans mon fomulaire ..
Mais dès que je click sur le bouton "Click" ... erreur Javascript .. la
fonction testit() n'est pas connue ou reconnue !

Ce qui est étrange est que cette technique fonctionnait bien avec un JRE 1.3
...
Y a t-il eu des changements sur les JRE 1.4 et 1.5 ??
Quelqu'un a déjà rencontré ce problème ?

Merci :)
A+




Avatar
Maldo
Merci pour les conseils ...
Je viens de tester à nouveau, et ça tourne bien ... Problème résolu :)
En fait j'avais aussi une tâche d'obfuscation dans un des scripts ant de
compilation, packaging et signature de l'applet.
Du coup il me renomait le nom de mes méthodes, donc introuvables sous
Javascript

Vous avez une liste des navigateurs qui poseraient problèmes dans l'usage du
scripting ?


"TestMan" a écrit dans le message de news:
4402f9b8$0$700$
Bonjour,

En premier, Vérifier bien que le code exécuté par le navigateur indique
que l'applet est "scriptable" (pas sur que ce soit le cas pour votre
code sous IE par exemple).

Ensuite, vérifier que votre navigateur autorise le JavaScript à
"scripter" des composants (activex dans le cas de IE) ...

Pas mal de navigateurs empèchent de scrpter des composants depuis le
javascript, car c'est une des techniques utilisée pour contourner les
protections des barrières ...

A+

TM



Avatar
TestMan
Bonjour,

Tous les navigateurs qui comportent des systèmes de sécurités rafinés ou
de bloqueurs de popup sont des candidats ... tout dépend de la
configuration du poste utilisateur :(

Si votre appli doit fonctionner sur le plus grand nombre de postes, il
faut mieux réfléchir avant d'utiliser le scripting, sauf à aimer
l'assistance à utilisateur ;-)

A+
TM



Merci pour les conseils ...
Je viens de tester à nouveau, et ça tourne bien ... Problème résolu :)
En fait j'avais aussi une tâche d'obfuscation dans un des scripts ant de
compilation, packaging et signature de l'applet.
Du coup il me renomait le nom de mes méthodes, donc introuvables sous
Javascript

Vous avez une liste des navigateurs qui poseraient problèmes dans l'usage du
scripting ?


"TestMan" a écrit dans le message de news:
4402f9b8$0$700$
Bonjour,

En premier, Vérifier bien que le code exécuté par le navigateur indique
que l'applet est "scriptable" (pas sur que ce soit le cas pour votre
code sous IE par exemple).

Ensuite, vérifier que votre navigateur autorise le JavaScript à
"scripter" des composants (activex dans le cas de IE) ...

Pas mal de navigateurs empèchent de scrpter des composants depuis le
javascript, car c'est une des techniques utilisée pour contourner les
protections des barrières ...

A+

TM