jwl*_*jwl 6 html java applet overlay z-index
网页中Java Applet的一个众所周知的问题是浏览器会忽略applet标记的z-index与页面中的其他组件.无论你如何在页面中定位和z-index元素,applet都会在所有内容之上绘制自己.
有一种解决方法,称为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?bad_id = 6646289,注意它已经开放了一年,但是其他错误报告可以追溯到很多年.
这太令人沮丧了,难道孙不明白这是将Java作为在浏览器中做一些很酷的东西的边缘化的事情吗?我爱你Java,但你没有帮助你的情况......
小智 5
这个问题有一个棘手的解决方案.没有必要在里面有代码iframe.我们可以将一个虚拟对象iframe作为applet上方的一层.然后一个带有文本的绝对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>
Run Code Online (Sandbox Code Playgroud)
实际上问题与 z-index 根本无关。这是由 Netscape Plugin API (NPAPI) 的“窗口化”绘图模型引起的。
你对此无能为力(除了垫片)。插件作者必须使用 windowless API 重写它。
| 归档时间: |
|
| 查看次数: |
12587 次 |
| 最近记录: |