6

Web ページの Java アプレットに関するよく知られた問題は、ブラウザーがページ内の他のコンポーネントに対してアプレット タグの z-index を無視することです。ページ内の要素の配置方法と z-index 要素に関係なく、アプレットはすべての上に自分自身を描画します。

http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/で説明されているように、iframe shim と呼ばれる回避策があります

ただし、この回避策は、Windows の Safari 3 または 4 では機能しません (Mac も同様であると想定)。

Safariで動作させる方法を知っている人はいますか?

不器用なシムを回避できるように、根底にある問題を修正するよう Sun に圧力をかける方法についてアイデアを持っている人はいますか? この問題に関するバグ レポートhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289は、1 年間公開されていることに注意してください。ただし、他のバグ レポートは何年も前にさかのぼります。

これは非常に苛立たしいことです。Sun は、ブラウザで優れた機能を実行する方法として Java が過小評価されているのは、まさにこのようなことだと理解していませんか? 私はJavaを愛していますが、あなたはあなたの状況を助けていません...

4

3 に答える 3

5

この問題には注意が必要な解決策があります。内にコードを含める必要はありませんiframeiframeアプレットの上のレイヤーと同じようにダミーを作成できます。そして、テキストを含む絶対divをその上に簡単に配置できます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>
于 2011-02-14T15:02:28.567 に答える
3

実際、問題は z-index とはまったく関係ありません。これは、Netscape Plugin API (NPAPI) の「ウィンドウ化された」描画モデルが原因です。

それについては何もできません(シムを除く)。プラグインの作成者は、ウィンドウレス API を使用してそれを書き直す必要があります。

于 2009-09-08T11:48:49.513 に答える
2

1 つには、Mac 上の Java は、実際には Sun ではなく Apple によって構築されています。アプレットに関しては、上に何かが表示されるとアプレットを非表示にします。ただし、それはあなたのニーズには十分ではないかもしれません。

于 2009-04-21T01:13:24.680 に答える