2010-02-15 5 views
4

J'ai du mal à trouver un moyen de cacher une applet Java() en utilisant jquery.Masquage d'une applet Java avec jquery? Possible?

J'ai un lien qui ouvre un simple problème ajax fancybox (http://fancybox.net) est qu'il apparaît toujours derrière l'applet java.

Y a-t-il un moyen de 'cacher' l'applet ou même de le décharger? Je peux le recharger après avoir fermé la fancybox (demandant essentiellement une confirmation de l'utilisateur).

Répondre

5

Vous pouvez supprimer son objet DOM ou définir sa propriété CSS sur hidden.

jQuery("#applet").remove(); 

ou

jQuery("#applet").hide(); 

Vous pouvez également kill the applet:

<script> 
document.MyApplet.killApplet(); 
</script> 

public void killApplet() 
{ 
    AccessController.doPrivileged(new PrivilegedAction() 
    { 

     public Void run() { 
      // kill the JVM 
      System.exit(0); 
      return null; 
     } 
    }); 
} 

Cependant, cela stoppe l'applet, et renvoie des erreurs JS dans IE6

Vous pouvez également définir les applets taille à (1,1), et le remettre lorsque vous avez terminé.

jQuery("#applet").height(1).width(1); 
+0

Ok, .hide() fonctionne. Mais quand je mets 'show' ça ne le montre pas – Disco

+0

Essayez un show sur l'applet lui-même au lieu de DIV – Malfist

+0

J'ai: puis $ ("# myapplet"). Hide () fonctionne, mais $ ("# myapplet"). show() ne fonctionne pas. – Disco

1

Essayez quelque chose comme ceci:

var save=$('#applet').clone(); 
$('#applet').html(''); 

et quand vous avez besoin de retour

$('#applet').html(save.html()); 
save=null; //to free this bit of memory 

pas testé, mais je pense que cela fonctionne;)

+0

Ok va essayer, thx. – Disco

5

Ce que je fais est $ ('applet'). addClass ('hide');

.hide { 
    position: absolute; 
    left: -10000px; 
} 

Do $ ('applet'). RemoveClass ('hide'); quand vous le voulez. Toutes les autres options forceront le redémarrage de votre applet.