javascript - jQuery Javascript scrollTop 在 Chrome 上无法按预期工作来恢复滚动条位置

标签 javascript jquery

我使用以下 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/

相关文章:

javascript - 单击时获取具有自己的迭代按钮的输入值

javascript - Google Apps 脚本 - 如何中断循环以防止出现错误消息

javascript - 如何将数据从 URL 传递到 JQuery 切换器 initShow 函数

javascript - 在输入类型文本(不是文本区域)中粘贴多行文本

javascript - React-Navigation:如何在 TabNavigation 中的选项卡之间传递数据?

jquery - 从函数触发jquery移动页面转换

javascript - 将 youtube 中的 url 替换为嵌入代码 - 错误 : Permission denied to access property 'toString'

javascript - 使用ajax如何在不刷新页面的情况下显示特定td的值

javascript - Laravel、jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)

javascript - Yii2 从 js 脚本在页面上的 vendor 文件夹中添加图像、css、js 文件