Javascript 将X轴添加到无滚动刷新

Javascript 将X轴添加到无滚动刷新,javascript,html,Javascript,Html,有人能帮我在无滚动刷新中添加X轴吗。我不希望它在每次刷新时滚动到顶部或左侧,这是非常常见的 <script type="text/javascript"> function refreshPage () { var page_y = document.getElementsByTagName("body")[0].scrollTop; window.location.href = window.location.href.split('?')[0] + '?p

有人能帮我在无滚动刷新中添加X轴吗。我不希望它在每次刷新时滚动到顶部或左侧,这是非常常见的

 <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, 1700);
            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>

函数刷新页(){
var page_y=document.getElementsByTagName(“body”)[0].scrollTop;
window.location.href=window.location.href.split('?')[0]+'?page_y='+page_y;
}
window.onload=函数(){
设置超时(刷新页面,1700);
if(window.location.href.indexOf('page_y')!=-1){
var match=window.location.href.split(“?”)[1]。split(&”)[0]。split(“=”;
document.getElementsByTagName(“正文”)[0].scrollTop=match[1];
}
}

这已经是浏览器的行为了(至少,我在Firefox和Chrome中进行了测试)

尽管如此,它并不是因为你重新加载的方式而这样做的。使用“重新加载”方法,效果很好

//location.reload(forceGet): forceGet is false by default
//false will make it load from the cache
window.location.reload()
但是如果你真的想手动完成的话

var page_y = window.scrollY;

window.scrollTo(0, match[1])
在当前代码中,它将如下所示:

<script type="text/javascript">
function refreshPage () {
    var doc = document.documentElement
    var body = document.body;
    var page_y = window.scrollY || ((doc && doc.scrollTop) || (body && body.scrollTop || 0)) - (doc.clientTop || 0);
    window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;
}
window.onload = function () {
    setTimeout(refreshPage, 1700);
    if (window.location.href.indexOf('page_y') != -1 ) {
        var match = window.location.href.split('?')[1].split("&")[0].split("=");
        window.scrollTo(0, match[1]);
    }
}
</script>
使用:


等等,我使用的是IE10,这个浏览器只适用于IE10,刷新时它会向上向左滚动,除非我另有设置。我需要每1.7秒刷新一次我的页面。我刚刚用IE9测试过,而且
滚动到
似乎可以工作。它对你有用吗?不,我不知道该在哪里添加代码我不知道它如何用你拥有的每1.7秒刷新一次我是不是遗漏了什么?它不能向上或向左滚动。真的吗?好啊保留现有代码并更改两行。在方法刷新页面中,使用
page\u y=window.scrollY
获取
page\u y
值。在
onload
方法中,使用
窗口滚动页面。滚动到(0,匹配[1])
。很好地复制和粘贴您在IE10中发布的内容,它会滚动回顶部和左侧。。。。
var doc = document.documentElement
var body = document.body;
var page_y = window.scrollY || ((doc && doc.scrollTop) || (body && body.scrollTop || 0)) - (doc.clientTop || 0);
function refreshPage() {
    var page_y = document.getElementsByTagName("body")[0].scrollTop;
    var page_x = document.getElementsByTagName("body")[0].scrollLeft;
    window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y + "&page_x=" + page_x;
}
window.onload = function () {
    setTimeout(refreshPage, 10000); // you can change the timer again but I don't recommend making it too fast
    var match = window.location.href.split('?')[1].split("&");    
    if (window.location.href.indexOf('page_y') != -1) { 
        document.getElementsByTagName("body")[0].scrollTop = match[0].split("=")[1]; // page_y
    }
    if (window.location.href.indexOf('page_x') != -1) {
        document.getElementsByTagName("body")[0].scrollLeft = match[1].split("=")[1]; // page_x
    }
}