2 qq 19891827 qq_19891827 于 2016.03.25 17:13 提问

微信页面回退记忆scrollTop值失效问题

本人想做一个网页后退后记忆滚动条位置的功能,在新版本谷歌、火狐、ie浏览器测试都能正常使用,但是唯独在微信上打开页面大多数情况下此功能失效,只有小几率会成功,求专家帮忙解决,这是代码

 window.onload=function(){
        if(location.hash){
            var st=location.hash.replace('#st=','');
            $(window).scrollTop(st);
            //alert(st);
        }
    };
    window.onunload=function(){
        var hrefs='';
        if(location.hash){
            hrefs=location.hash.replace(/#st=\d+/,'');
        }
        history.replaceState('','',hrefs+'#st='+$(window).scrollTop());
    };

1个回答

showbo
showbo   Ds   Rxr 2016.03.25 17:19
已采纳

你alert下st获取到没有。微信点击手机上返回应该用的是location.href而不是history.back

qq_19891827
qq_19891827 回复无聊码农: 哦,这样啊!非常感谢您
一年多之前 回复
showbo
showbo 回复qq_19891827: 经验。。有些时候加延时器就会有效。如ie经典的scroll事件多次执行,需要用计时器来控制只执行一次
一年多之前 回复
qq_19891827
qq_19891827 解决了,把定时器时间设置为100效果不大好,还是有几率失效,我测了一下把时间设置为300效果比较好。谢谢你。能告诉我加延迟的作用么?
一年多之前 回复
showbo
showbo 回复qq_19891827: $(window).scrollTop(st);改为document.body.scrollTop=document.documentElement.scrollTop=st;试试,还不是用计时器延时执行设定的代码setTime(function(){设置scrollTop的代码},100);
一年多之前 回复
qq_19891827
qq_19891827 有什么解决办法么
一年多之前 回复
qq_19891827
qq_19891827 alert可以取到,知识scrollTop大多数情况下设置不上去
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!