2009-03-12 17 views
6

Dobrze znanym problemem z apletami języka Java na stronach internetowych jest to, że przeglądarki ignorują indeks zindela apletu w porównaniu do innych komponentów na stronie. Bez względu na to, jak pozycjonujesz i elementy z-index na stronie, aplety będą się nad wszystkim rysować.Indeks apletów języka Java na serwerze Safari i poza nim

Istnieje obejście, znane jako podkładka iframe, jak opisano tutaj: http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/.

Jednak to obejście nie działa w Safari 3 lub 4 w systemie Windows (zakładając to samo w przypadku komputerów Mac).

Czy ktoś wie, jak to działa w Safari?

Czy ktoś ma pomysły na to, jak wywierać presję na firmę Sun, aby rozwiązać podstawowy problem, abyśmy mogli uniknąć nieporęcznych podkładek? Oto raport o błędzie w sprawie, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289, zauważ, że był otwarty przez rok, jednak inne raporty o błędach sięgają wielu lat.

To jest takie frustrujące, nie rozumiem, że to jest coś, co zmarginalizowało Javę jako sposób na robienie fajnych rzeczy w przeglądarce? Kocham cię Javie, ale nie pomagasz w tej sytuacji ...

Odpowiedz

3

Właściwie problem nie jest w ogóle związany z indeksem Z. Jest to spowodowane "okienkowym" modelem rysowania interfejsu API wtyczki Netscape (NPAPI).

Nie można nic z tym zrobić (z wyjątkiem podkładki). Autor wtyczki musi rewrite it using windowless API.

2

Po pierwsze, Java na Mac jest faktycznie budowana przez Apple, a nie przez firmę Sun. Jeśli chodzi o aplety, ukrywamy aplety, gdy pojawia się coś na wierzchu. To może jednak nie wystarczyć dla twoich potrzeb.

5

Istnieje problematyczne rozwiązanie. Kod nie musi być wewnątrz iframe. Możemy mieć manekina iframe tak samo jak warstwę nad apletem. A następnie bezwzględny div z tekstem może łatwo umieścić powyżej tego iframe.

przykładem pracy

<!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>