这个问题以前曾发布在Primefaces论坛上,但我没有得到任何答案。

我正在尝试Primefaces 3.1,因为我需要覆盖面板功能。
不幸的是,在我的Internet Explorer 8(ie8)中,从未显示以下非常简单的覆盖面板,而在Firefox 5.x上却可以正常工作。
似乎与Ie8问题直接相关的html代码中的一些要点如下:
-该页面不需要垂直滚动条(如果该页面有一个,则显示覆盖面板)
-overlayPanel的高度是固定的。

<h:body>
<div style="height: 300px"></div>
<h:form>
<p:commandLink id="showAllUserList" value="Utenti online" />
<p:overlayPanel for="showAllUserList" my="right bottom" at="right top" dynamic="true"
style="width: 300px; height: 500px; border: 1px solid red; overflow-y: scroll" >
He who rules the skies rules the ground
<br/>
Monti kicks ass
</p:overlayPanel>
</h:form>
</h:body>


如果我很快找不到解决方法,则必须自己执行一些操作。

谢谢
菲利波

最佳答案

在关闭h:body标签之前,请放置以下Javascript代码。

<script type="text/javascript">
 if ( $.browser.msie) {
   if(parseInt($.browser.version, 10) === 8){
      var overlayPan = $("div.ui-overlaypanel");
      $(overlayPan).css('position','fixed');
    }
  }
</script>

07-28 00:02