6
votes

Déterminez si le navigateur client a installé Java et peut lancer des applets

Je développe une page .aspx qui lancera finalement une applet après que l'utilisateur clique sur un bouton (j'utilise l'utilisation de la balise étiquette). Donc, je voudrais détecter si Java est activé / installé sur le navigateur de l'utilisateur.

J'utilise la méthode Navigator.javaEnabled (). Cependant, même si cela fonctionne bien sur IE7, il renvoie des résultats incohérents sur Firefox 3.0.12 (ne sait pas sur différents navigateurs), disant parfois que Java est activé (ce qui est), puis après le lancement de l'applet et En revenant à nouveau de l'applet sur cette page, cela signalera de faux. Si je ferme Firefox et retourne à la page de lancement de l'applet, Navigator.javaenabled () signalera de la vraie (correctement).

Y a-t-il quelque chose qui détermine ce comportement incohérent ou est navigator.javaenabled () non le meilleur moyen de faire la vérification de l'applet Java?

Merci d'avance.


0 commentaires

4 Réponses :


11
votes

faire dans votre applet Une méthode xxx

crée maintenant une applet: xxx

et maintenant envelopper ce code dans une fonction d'assistance < / p> xxx

pourquoi cela fonctionne? Si l'applet fonctionne, il retournera vrai. Si l'applet ne fonctionne pas ou que Java n'est pas pris en charge, vous obtiendrez une exception, vous obtiendrez donc de faux.


6 commentaires

Merci Marcin pour la réponse. Cependant, si possible, je ne voudrais pas exécuter un applet pour le test. Je ferai peut-être recourir à cette méthode si je ne trouve pas une autre solution. La méthode que j'utilise fonctionne bien aussi sur Google Chrome, mais lorsque j'ouvre l'applet avec Firefox, puis fermez-la et revenez à la même page, le navigateur.javaenabled commence à revenir à la fausse. Très étrange!


Le seul moyen d'être certain à 100% que Java peut exécuter, est d'appeler le code Java. Si vous ne voulez pas, alors rendez-le très visible pour l'utilisateur que si quelque chose ne se produit pas dans les X secondes, ils doivent probablement installer Java.


@Marcin, est-ce disponible pour tous les navigateurs + JVM ou s'agit-il de quelque chose qui ne fonctionne que sur certaines combinaisons?


Mis en œuvre comme suggéré. Merci


J'ai des problèmes avec cette solution à FF. Cela fonctionne très bien chez les autres navigateurs, mais avec FF, cela ne le fait pas et que je dois ctr-f5 couple de fois.


Cela devrait fonctionner simplement bien dans tous les navigateurs. Cela dit, les API d'applet ne sont pas vraiment bien soutenues ces jours-ci et les choses se brisent souvent ...



1
votes

Vous pouvez également essayer d'utiliser la balise d'objet.

Avec elle, vous pouvez déterminer quelle version de Java est installée et invite l'utilisateur à le télécharger s'il n'existe pas. P>

Ceci est une étiquette d'objet d'exemple prise d'une application que je travaille sur, Jre Complications requises par nous de courir sur 1.4.2_03 pour la compatibilité avec d'autres applications. P>

 <object classid="clsid:CAFEEFAC-0014-0002-0003-ABCDEFFEDCBA" id="MyApplet" 
 name="MyApplet" width="4" height="4" 
 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2_03-windows-i586.cab#Version=1,4,2,03">


0 commentaires

0
votes

Il y a aussi un produit commercial appelé BrowserHawk.

http://www.cyscape.com/products /bhawk/workshop/detectjava.aspx?bhcp=1


0 commentaires

0
votes

Je pense que cette libère a la documentation et la mise en œuvre les plus complètes que je pouvais trouver et fonctionne assez bien

http://www.pinlady.net/plugindetect/java/


0 commentaires