2009-03-12 4 views
6

웹 페이지의 Java 애플릿에 대한 잘 알려진 문제점은 브라우저가 페이지의 다른 구성 요소 대 애플릿 태그의 z- 색인을 무시한다는 것입니다. 페이지에서 요소를 배치하고 Z- 색인을 지정하는 방법과 상관없이 애플릿은 모든 요소 위에 그립니다.Safari 이상의 Java 애플릿 Z- 색인

여기에 설명 된대로 iframe 심으로 알려진 해결 방법이 있습니다 (http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/).

그러나이 해결 방법은 Windows의 Safari 3 또는 4 (Mac의 경우 동일하다고 가정)에서 작동하지 않습니다.

누구나 Safari에서 작동시키는 방법을 알고 있습니까?

우리는 서툰시를 피할 수 있도록 근본적인 문제를 해결하기 위해 Sun에 압력을 가하는 방법에 대한 아이디어가 있습니까? 다음은 이슈에 관한 버그 리포트 인 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289입니다. 그러나 1 년 동안 열려 있었음에도 불구하고 다른 버그 리포트는 수년 전으로 거슬러 올라갑니다.

이것은 매우 실망 스럽습니다. Sun이 브라우저에서 멋진 작업을 수행하는 방법으로 Java를 소외시키는 바로 그 종류의 일임을 이해하지 못합니까? Java를 좋아하지만 상황을 돕지는 않습니다 ...

답변

3

실제로 문제는 z- 색인과 전혀 관련이 없습니다. Netscape Plugin API (NPAPI)의 "창으로 표시된"그리기 모델 때문입니다.

심의 경우를 제외하고는 아무 것도 할 수 없습니다. 플러그인 작성자는 rewrite it using windowless API입니다.

2

Mac의 Java는 실제로 Sun이 아니라 Apple에 의해 개발되었습니다. 애플릿에 관해서는 애플릿의 맨 위에 뭔가가 나타날 때 애플릿을 숨 깁니다. 그것은 귀하의 요구에 충분하지 않을 수도 있습니다.

5

문제에 대한 까다로운 해결책이 있습니다. 코드가 iframe 안에있을 필요는 없습니다. 우리는 애플릿 위에 레이어로 단지 iframe 더미를 가질 수 있습니다. 그리고 나서 텍스트가있는 절대 구분자는 iframe 위에 쉽게 놓일 수 있습니다.

작업 예를

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