0

    怎么在新页面中返回到前一页浏览的历史位置?

    2023.08.11 | admin | 119次围观

    以前也做过差不多的功能,想了好久想到了解决方法,这个方法是一个通过的方法,不需要每个页面都写一次,这是利用cookie完成的,把记录的滚动条的位置放入cookie网页总是自动回到顶部,下次进入这个页面的时候读取cookie,并设置滚动条位置为cookie中的值,从而让滚动条回到上一次的位置,实现返回上一次浏览的位置,如果多个页面要使用这个功能,那就要定义多个cookie来记录不同页面滚动高度,为了解决这个问题使用了一个相对简单的方法,就是cookie的值是以页面的文件名命名,js中创建cookie时,自动获取网页路径,截取页面的文件名,并将cookie名设置为此文件名,这样就可以避免多次命名,从而减少了代码

    具体实现的代码如下:

    /*返回上次浏览位置*/

    $(function () {

    var str = window.location.href;

    str = str.substring(str.lastIndexOf("/") + 1);

    if ($.cookie(str)) {

    $("html,body").animate({ scrollTop: $.cookie(str) }, 1000);

    else {

    })

    $(window).scroll(function () {

    var str = window.location.href;

    str = str.substring(str.lastIndexOf("/") + 1);

    var top = $(document).scrollTop();

    $.cookie(str, top, { path: '/' });

    return $.cookie(str);

    })

    /*返回上次浏览位置*/

    这个是用jquery写的,所以用的时候要引入jquery库,和jquery.cookie.js

    代码可能有改进的地方,但能实现效果网页总是自动回到顶部,ajax动态加载的页面也测试过可用,把代码贴在这里给有需要的人一点帮助

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: cookie滚动条
    发表评论