【发布时间】:2012-10-05 00:37:17
【问题描述】:
我正在使用以下 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 cookie 插件的 jQuery 1.4.2。
有什么想法吗?
【问题讨论】:
-
您可以在 buyometric.co.uk/test.php 上查看该问题的演示。如果您单击 Chrome 中的任何“4”链接,您将返回页面顶部。如果刷新浏览器,滚动条位置会被召回
标签: javascript jquery