Question

Je suis en train de créer un fichier Excel et enregistrez le système de fichiers local utilisant l'applet java. Après signer la demande, je peux créer avec succès le fichier en appelant directement l'applet. Cependant, lorsque je tente d'appeler la méthode de javascript, il n'a sans aucun message d'erreur. Je me demande s'il y a un contrôle de la politique de prévention java méthode à appeler de javascript?

 <html>
<script language="JavaScript">
function createExcel()
{
    document.excel.createExcel();

    document.excel.setMessage("hello world from js");
}
</script>
<body>
<input type="button" value="Generate Excel" onclick="createExcel()" />
<applet id='applet' name='excel' archive='Office.jar,poi-3.7-20101029.jar' code='com.broadridge.Office.class' width='100' height='100'></applet>
</body>
</html>
Était-ce utile?

La solution

Méthodes dans une applet de confiance qui sont appelés à l'aide nécessaire JavaScript à être enveloppé dans un PrivilegedAction et a appelé à l'aide l'un des AccessController.doPrivileged(..) variantes.

sandbox accès système de fichiers

Plug-In 2 (JREs 1.6.0_10 + par exemple de JRE Oracle) Offre sandbox accès au système de fichiers local en utilisant le les services de fichiers de l'API JNLP (en particulier le FileSaveService ). Voir la démonstration du service de fichiers . un exemple.

Applet élément

Une applet appelée par JS doit déclarer qu'il est scriptable dans le code HTML. Quant à obtenir que « HTML », la meilleure façon d'écrire utilise Oracle deployJava.js . Il ne sera pas seulement écrire l'élément applet de la meilleure façon qui est actuellement connu pour chaque navigateur, mais ne présence JRE (Java est installé?) Et version minimale (est JRE la version minimale nécessaire pour faire fonctionner cette applet?) Vérifier.

Autres conseils

Il peut y avoir plusieurs problèmes ici.

1) Vous devez utiliser la méthode de déploiement JavaScript pour l'applet (voir le lien).

2) Si la méthode que vous essayez d'appeler est pas dans l'enfant applet lui-même, vous devez d'abord obtenir une instance de la classe en question puis invoquez la méthode est tout, par exemple (Pour la classe Calculator):

var calculator = mathApplet.getCalculator();
calculator.setNums(numA, numB);

d'info

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top