在 jQuery 中(这将保存一个带有滚动位置的 cookie):
// When document is ready...
$(document).ready(function() {
// If cookie is set, scroll to the position saved in the cookie.
if ( $.cookie("scroll") !== null ) {
$(".yourTableContainerDIV").scrollTop( $.cookie("scroll") );
}
// On window unload, save cookie
$(window).unload(function() {
$.cookie("scroll", $(".yourTableContainerDIV").scrollTop() );
});
});
取自这个答案,稍作修改。
编辑:
所以它并不完全奏效。
第一个问题是,如果您使用此表,您需要阅读的不是容器 DIV scrollTop
,而是您需要查看的 tbody。
而第二个问题是调用$(".scrollContent").scrollTop()
之前的值变成了0 。$(window).unload()
当我像这样修改代码时:
// When document is ready...
$(document).ready(function() {
// If cookie is set, scroll to the position saved in the cookie.
if ( $.cookie("scroll") !== null ) {
$(".yourTableContainerDIV").scrollTop( $.cookie("scroll") );
}
// Set i to the current scroll position every 100 milliseconds.
var i;
window.setInterval(function(){i=$(".scrollContent").scrollTop()}, 100);
// On window unload, save cookie.
$(window).unload(function() {
$.cookie("scroll", i);
});
});
效果很好!但是你有一个函数被调用,并且每十分之一秒设置一个值,这对性能来说不太好。另一种方法是window.beforeUnload
像这样使用:
// When document is ready...
$(document).ready(function() {
// If cookie is set, scroll to the position saved in the cookie.
if ( $.cookie("scroll") !== null ) {
$(".yourTableContainerDIV").scrollTop( $.cookie("scroll") );
}
});
window.onbeforeunload = function(){
$.cookie("scroll", $(".scrollContent").scrollTop());
return;
}
这在大多数浏览器中效果很好并且不涉及间隔,但它在 Opera 中不起作用。
希望这可以帮助...