所以我想每隔3分钟刷新一次页面,但页面应保持在同一位置,而不是顶部。我已经尝试过这个程序,但这不是我想要的。
<script type="text/javascript">
function load() {
setTimeout("window.open(self.location, '_self');", 180000);
}
</script>
<body onload="load()">
答案 0 :(得分:0)
如果jquery没问题,你可以这样做:
$(window).on('beforeunload', function() {
$(window).scrollTop(0);
});
答案 1 :(得分:0)
为了实现您的目标,您需要在页面刷新时将scrollTop位置存储在localStorage中,
database.child("User").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int depositInteger = 0;
try {
depositInteger = Integer.parseInt(depositText.getText().toString().trim());
} catch (NumberFormatException e) {
if (depositText.equals("")) {
Toast.makeText(getActivity(), "Failed", Toast.LENGTH_SHORT).show();
}
}
database.child(user.getDisplayName()).child("deposit").setValue(depositInteger);
Long previousDeposit = dataSnapshot.child("User").child(user.getDisplayName()).child("deposit").getValue(Long.class);
System.out.println("VAAAALUE: " + previousDeposit);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
然后加载,
setTimeout(function () {
localStorage.setItem('scroll_top', window.scrollTop);
window.open(self.location, '_self');
}, 180000);
所以你的最终结果是,
if (localStorage.getItem('scroll_top') !== null)
window.scrollTo(0, parseInt(localStorage.getItem('scroll_top')));
答案 2 :(得分:0)
您可以使用localStorage
保存滚动的当前位置,然后在timeout
function load() {
//get the previous scroll position and set to the HTML body
if(typeof localStorage.scrollPos !== 'undefined'){
document.body.scrollTop = localStorage.scrollPos;
}
setTimeout(function(){
//get the scroll position of the page
//and store it in local storage
localStorage.scrollPos = document.body.scrollTop;
}, 180000);
}
它的作用是 - load()
函数调用它将从localStorage
检索滚动位置并分配到页面的body
,该页面将页面滚动到该点这是在重装之前。请注意,每次在超时内更新localStorage
,这将在超时期间存储页面的最新滚动位置。
答案 3 :(得分:0)
使用localstorage在重新加载之前保存当前位置(x和y)。并在重新加载后使用此值。window.scrollTo(x,y)
是用于此操作的函数。