为了账号安全,请及时绑定邮箱和手机立即绑定

刷新页面并保持滚动位置

刷新页面并保持滚动位置

有只小跳蛙 2019-10-19 15:55:32
有人可以告诉我我在做什么错吗?我需要在一段时间后刷新页面,但它会刷新到页面顶部,我需要不更改页面位置!所以这是我现在无法使用的,是meta标签吗?这是我所没有的仍然不刷新必须做错了什么吗?这是我本来的...<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <meta http-equiv="refresh" content="72">        <meta http-equiv="Pragma" CONTENT="no-cache">        <meta http-equiv="Expires" CONTENT="-1">        <style type="text/css">        body        {             background-image: url('../Images/Black-BackGround.gif');            background-repeat: repeat;        }        </style>    </head>    <script type="text/javascript">    function saveScrollPositions(theForm) {        if(theForm) {            var scrolly = typeof window.pageYOffset != 'undefined' ? window.pageYOffset                                                   : document.documentElement.scrollTop;            var scrollx = typeof window.pageXOffset != 'undefined' ? window.pageXOffset                                                  : document.documentElement.scrollLeft;            theForm.scrollx.value = scrollx;            theForm.scrolly.value = scrolly;        }    }    </script> <form action="enroll.php" name="enrollment" method="post" onsubmit="return saveScrollPositions (this);">  <input type="hidden" name="scrollx" id="scrollx" value="0" />  <input type="hidden" name="scrolly" id="scrolly" value="0" />  <STYLE type="text/css">   #Nav a{ position:relative; display:block; text-decoration: none; color:Black; }   Body td{font-Family: Arial; font-size: 12px; }  </style>阅读了一些初始答案后,我将其更改为...<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><style type="text/css">body{     background-image: url('../Images/Black-BackGround.gif');    background-repeat: repeat;}</style></head><script>function refreshPage () {    var page_y = $( document ).scrollTop();    window.location.href = window.location.href + '?page_y=' + page_y;}
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

更新


您可以使用document.location.reload(true)下面提到的方法代替下面的强制技巧。


将HTML替换为:


<!DOCTYPE html>

<html>

    <head>

        <style type="text/css">

            body { 

                background-image: url('../Images/Black-BackGround.gif');

                background-repeat: repeat;

            }

            body td {

               font-Family: Arial; 

               font-size: 12px; 

            }

            #Nav a { 

                position:relative; 

                display:block; 

                text-decoration: none; 

                color:black; 

            }

        </style>

        <script type="text/javascript">

            function refreshPage () {

                var page_y = document.getElementsByTagName("body")[0].scrollTop;

                window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;

            }

            window.onload = function () {

                setTimeout(refreshPage, 35000);

                if ( window.location.href.indexOf('page_y') != -1 ) {

                    var match = window.location.href.split('?')[1].split("&")[0].split("=");

                    document.getElementsByTagName("body")[0].scrollTop = match[1];

                }

            }

        </script>

    </head>

    <body><!-- BODY CONTENT HERE --></body>

</html>


查看完整回答
反对 回复 2019-10-19
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

document.location.reload()存储位置,请参阅docs。


添加其他true参数以强制重新加载,但不恢复位置。


document.location.reload(true)

MDN文档:


forceReload标志更改了某些浏览器处理用户滚动位置的方式。通常reload()之后会恢复滚动位置,但是强制模式可以滚动回到页面顶部,就像window.scrollY === 0一样。


查看完整回答
反对 回复 2019-10-19
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

如果您不想使用本地存储,则可以将页面的y位置附加到url上,并在加载时使用js进行抓取,并将页面偏移量设置为传入的get参数,即:


//code to refresh the page

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

window.location.href = window.location.href + '?page_y=' + page_y;



//code to handle setting page offset on load

$(function() {

    if ( window.location.href.indexOf( 'page_y' ) != -1 ) {

        //gets the number from end of url

        var match = window.location.href.split('?')[1].match( /\d+$/ );

        var page_y = match[0];


        //sets the page offset 

        $( 'html, body' ).scrollTop( page_y );

    }

});


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 732 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信