代码之家  ›  专栏  ›  技术社区  ›  jwl

Safari及更高版本上的Java小程序z-index

  •  6
  • jwl  · 技术社区  · 17 年前

    网页中Java小程序的一个众所周知的问题是浏览器忽略了小程序标记的z索引,而忽略了页面中其他组件的z索引。无论您如何在页面中定位和z-index元素,小程序都会在所有内容之上绘制自己。

    http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/ .

    但是,此解决方案在Windows中的Safari 3或4中不起作用(假设Mac也如此)。

    有没有人知道如何给太阳施加压力来解决根本问题,从而避免使用笨拙的垫片?这是关于这个问题的错误报告, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6646289

    这太令人沮丧了,难道Sun不明白这正是将Java边缘化为在浏览器中做酷东西的一种方式的原因吗?我爱你Java,但你没有帮助你的处境。。。

    3 回复  |  直到 12 年前
        1
  •  5
  •   Leniel Maccaferri    12 年前

    这个问题有一个棘手的解决办法。没有必要将代码放在 iframe . 我们可以有一个假人 iframe 就像小程序上面的一层一样。然后一个带文本的绝对div可以很容易地放在上面 .

    工作示例

    <!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>
    
        2
  •  3
  •   Kornel    16 年前

    你对此无能为力(除了垫片)。插件作者必须 rewrite it using windowless API .

        3
  •  2
  •   gbvb    17 年前