我有一个JSP页面,其中包含一个搜索字段,下面是搜索结果表。当用户按下搜索按钮时,将通过java servlet处理请求,并重新加载页面中返回的结果。只有在搜索完成后页面加载后我才需要页面向下滚动到表格。
我研究了这个主题并找到了这个解决方案
onclick="document.getElementById('searchtable').scrollIntoView();"
我把它放在搜索按钮中它可以工作但按下按钮后页面会重新加载,重新加载的页面从顶部开始,这是我的问题。
这就是我所拥有的
<div id="searchtable">
<table>
<c:forEach items="${tableheader}">
<!-- search results go here -->
</c:forEach>
我想做的是添加
<c:if test="${tableheader not equal null}">document.getElementById('searchtable').scrollIntoView();</c:if>
进入<c:forEach>
,但我不确定如何正确实现这一点。
任何帮助都会很棒。
答案 0 :(得分:1)
我假设这是一个普通的JSP
<form onsubmit='getTable'>
<button type='submit'>Get Table</button>
</form>
所以当你点击,页面重新加载,一张表突然出现,对吗?
这可以通过JS修复:
<script>
(function autoScroll(){
document.getElementById('searchtable').scrollIntoView();
})()
</script>
或者更确切地说,如果它包含行(使用jQuery以方便),则滚动到表
<script>
(function autoScroll(){
if( $('#searchtable tbody tr').length > 0 ){
document.getElementById('searchtable').scrollIntoView();
}
})()
</script>