2009-03-12 37 views
6

Một vấn đề nổi tiếng với Java Applet trong các trang web là các trình duyệt bỏ qua chỉ mục z của thẻ applet so với các thành phần khác trong trang. Không có vấn đề làm thế nào bạn vị trí và z-index các yếu tố trong trang, applet sẽ vẽ mình trên đầu trang của tất cả mọi thứ.Java Applet z-index trên Safari và xa hơn

Có một giải pháp thay thế, được gọi là khung nội tuyến, như được mô tả tại đây: http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/.

Tuy nhiên, cách giải quyết này không hoạt động trong Safari 3 hoặc 4 trong Windows (giả sử giống với Mac).

Có ai biết cách làm cho nó hoạt động trong Safari không?

Có ai có ý tưởng về cách áp lực mặt trời để khắc phục vấn đề cơ bản để chúng ta có thể tránh những vụ lúng túng vụng về? Đây là một báo cáo lỗi về vấn đề này, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289, thông báo rằng nó đã được mở trong một năm, tuy nhiên các báo cáo lỗi khác quay trở lại nhiều năm.

Điều này thật là bực mình, không phải Sun hiểu rằng đây là một thứ rất có thể khiến Java bị gạt ra ngoài lề như một cách làm những thứ thú vị trong trình duyệt? Tôi yêu bạn Java, nhưng bạn không giúp đỡ tình huống của bạn ...

Trả lời

3

Vấn đề thực sự không liên quan đến chỉ mục z. Đó là do mô hình vẽ "cửa sổ" của Netscape Plugin API (NPAPI).

Bạn không thể làm bất cứ điều gì về nó (ngoại trừ shim). Tác giả plugin phải rewrite it using windowless API.

2

Đối với một, Java trên Mac thực sự được xây dựng bởi Apple chứ không phải Sun. Đối với các applet, chúng ta ẩn các applet khi có thứ gì đó xuất hiện trên nó. Điều đó có thể không đủ cho nhu cầu của bạn mặc dù.

5

Có một giải pháp khó khăn cho vấn đề. Không cần phải có mã bên trong số iframe. Chúng tôi có thể có một giả iframe giống như một lớp phía trên applet. Và sau đó một div tuyệt đối với văn bản có thể dễ dàng đặt trên đó iframe.

ví dụ làm việc

<!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> 
Các vấn đề liên quan