我正在使用此处建议的NavigationHandler.handleNavigation(ExternalContext.dispatch() not working),因为我正在使用ajax请求。
它有效,但我看到页面中间的下一页(或多或少),而不是在页面顶部看到它。
我尝试使用此处建议的锚点(http://www.computerhope.com/issues/ch001475.htm),但它也不起作用。
知道发生了什么事吗?
这是我的代码:
context.getApplication().getNavigationHandler().handleNavigation(context, null, "/user-registration.xhtml#top");
我在下一页正文的开头添加了以下内容:
<a name="top"></a>
答案 0 :(得分:1)
将窗口滚动到顶部的正确方法是window.scrollTo()
x
和y
0
:
window.scrollTo(0, 0);
这可以使您的URL不受哈希片段混乱的影响。
为了在每个JSF ajax事件成功时调用它,请在文档中包含以下脚本。
jsf.ajax.addOnEvent(function(data) {
if (data.status == "success") {
window.scrollTo(0, 0);
}
});
答案 1 :(得分:0)
最后我用以下脚本解决了它:
<script type="text/javascript">
$(document).ready(function() {
location.hash = "#top";
});
</script>