2009-03-12 12 views
6

Un noto problema con le applet Java nelle pagine Web è che i browser ignorano lo z-index del tag applet rispetto ad altri componenti nella pagina. Indipendentemente da come posizioni e gli elementi z-index nella pagina, le applet si disegneranno sopra a tutto.Z-index applet Java su Safari e oltre

C'è una soluzione, nota come shif iframe, come descritto qui: http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/.

Tuttavia, questa soluzione alternativa non funziona in Safari 3 o 4 in Windows (presupponendo lo stesso per Mac).

Qualcuno sa come farlo funzionare in Safari?

Qualcuno ha idee su come spingere Sun per risolvere il problema sottostante in modo da evitare spiacevoli sbalzi? Ecco un bug report sul problema, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289, si noti che è stato aperto per un anno, tuttavia altre segnalazioni di bug risalgono a molti anni.

Questo è così frustrante, Sun non capisce che questo è il genere di cosa che ha marginalizzato Java come un modo per fare cose interessanti nel browser? Ti amo Java, ma non stai aiutando la tua situazione ...

risposta

3

In realtà il problema non è correlato a z-index. È causato dal modello di disegno "a finestre" dell'API Netscape Plugin (NPAPI).

Non si può fare nulla (tranne lo spessore). L'autore del plugin deve rewrite it using windowless API.

2

Per uno, Java su Mac è in realtà costruito da Apple e non da Sun. Per quanto riguarda le applet, nascondiamo le applet quando sopra c'è qualcosa che appare. Ciò potrebbe non essere sufficiente per le tue esigenze.

5

C'è una soluzione complicata per il problema. Non è necessario avere il codice all'interno di uno iframe. Possiamo avere un dummy iframe proprio come un livello sopra l'applet. E poi un div assoluto con il testo può facilmente essere posizionato sopra a quello iframe.

esempio funzionante

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Applet z index issue</title> 
<style> 

.applet {width:400px; margin:0 auto; text-align:center; border:1px solid #000; left:40%; position:absolute } 
.iframe {width:400px; background:#fff; position:absolute; border:1px solid #f00; position:absolute; left:45%; top:20px; z-index:9; height:201px;} 
.message { width:250px; border:1px solid #000; background:#fff; height:150px; color:#fff; text-align:center; z-index:99; background:#555; float:left; position:absolute; left:45%; top:20px} 

</style> 
</head> 

<body> 
<div class="message">Message</div> 
<div class="iframe"><iframe style="width:500px; height:205px; background:none; border:none"> </iframe></div> 
<div class="applet"> 

<applet code="Bubbles.class" width="400" height="350"> 
Java applet that draws animated bubbles. 
</applet> 

</div> 

</body> 
</html>