【发布时间】:2010-04-08 15:27:08
【问题描述】:
我有一个数据表,如果记录超过 20 条,我正在使用滚动条。问题是回发后 div 滚动条会移到顶部。无论如何我可以在回发后修复div滚动的重置。谢谢。
【问题讨论】:
标签: javascript jsf
我有一个数据表,如果记录超过 20 条,我正在使用滚动条。问题是回发后 div 滚动条会移到顶部。无论如何我可以在回发后修复div滚动的重置。谢谢。
【问题讨论】:
标签: javascript jsf
您可以使用element.scrollTop 在Javascript 中获取和设置元素的当前滚动位置。利用表单的onsubmit 处理程序将其保存为隐藏的输入元素:
<h:form id="formId" onsubmit="saveScrollPos()">
<h:inputHidden id="scrollPos" />
...
有这个功能
function saveScrollPos() {
var scrollPos = document.getElementById('divId').scrollTop;
document.getElementById('formId:scrollPos').value = scrollPos;
}
这样它就可以作为请求参数使用,名称为formId:scrollPos。您可以在 onload 期间使用 Javascript 进行设置:
window.onload = function() {
var scrollPos = <h:outputText value="#{param['formId:scrollPos']}" />;
document.getElementById('divId').scrollTop = scrollPos;
}
这里的divId 显然是您要滚动的<div> 的ID。
【讨论】: