这个问题以前曾发布在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>