Primefaces 3.1在IE8上覆盖面板错误

时间:2012-02-13 09:46:47

标签: primefaces overlay

此问题之前发布在Primefaces论坛上,我没有收到任何答案。

我正在尝试使用Primefaces 3.1,因为我需要覆盖面板功能。 不幸的是,在我的Internet Explorer 8(ie8)中,以下非常简单的覆盖面板永远不会显示,而它在Firefox 5.x上工作得很好。 html代码中与Ie8问题直接相关的一些要点如下: - 页面不需要垂直滚动条(如果页面有一个覆盖面板显示) - 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>

如果我很快找不到解决方法,我就必须自己实施。

由于 菲利普

3 个答案:

答案 0 :(得分:1)

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>

答案 1 :(得分:0)

您可以尝试为覆盖面板设置appendToBodytrue。这在某些情况下会有所帮助,但说实话,我认为您的页面足够简单,不会产生任何影响。

答案 2 :(得分:0)

检查您的样式overflow:hidden(也是.ui-overlaypanel的子元素),玩它们overflow:visible - 结合固定大小(就像你已经拥有的那样)我是能够解决问题。