我使用以下 jQuery Javascript 来保存卸载事件之前的滚动条位置并再次重新应用它:
$(document).ready(function () {
document.documentElement.scrollTop = $.cookie("scroll") || 0;
});
window.onbeforeunload = function () {
$.cookie("scroll", document.documentElement.scrollTop, { expires: 7 });
}
基本上我有一系列刷新页面的链接,我希望浏览器恢复滚动条位置。注意在此实例中我无法使用 AJAX。它在 Firefox 中非常有用。然而,在 Chrome 和 Safari 中,它仅在刷新浏览器窗口时起作用,而不是在单击链接刷新页面时起作用。就好像单击链接没有被识别为 onbeforeunload。
我尝试修改代码以使用单击事件设置滚动 cookie,如下所示,但没有成功:
$(document).ready(function () {
document.documentElement.scrollTop = $.cookie("scroll") || 0;
});
$('a.lockscrollbar').click(function() {
$.cookie("scroll", document.documentElement.scrollTop, { expires: 7 });
}
仅供引用,我正在使用 jQuery 1.4.2 和 jQuery cookie 插件。
有什么想法吗?
最佳答案
这是一篇较旧的文章,但我在 Chrome 20 上遇到了同样的问题。使用 jQuery 1.7.1 这对我有用:
$(window).on('load', function(){
$('html body').scrollTop(0);
});
关于javascript - jQuery Javascript scrollTop 在 Chrome 上无法按预期工作来恢复滚动条位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872375/