浏览器返回键锚点失效问题

描述:浏览器自带的后退前进按钮平时都可以使用,但是遇到页面有锚点连接的时候,点击返回键却没定位到页面锚点的位置,也就是说返回锚点没生效。这时需要刷新页面才重新生效。

问题:浏览器返回键并不会触发锚点事件。所以我们只要解决返回让他触发锚点事件就可以了。

思路:

  1.监听浏览器后退事件和前进事件。

  2.监听到后重新给一个当前页面的请求作为锚点请求的触发条件即可。

代码:

<script type="text/javascript">
    $(function () {
        var count = 0; //计数 只发一次请求即可
        window.addEventListener("popstate", function (e) {
            count ++;
            if(count == 1) {
                location.href = window.location.href;
            }
            count = 0;
        }, true);
    });
</script>

以上代码直接使用即可。

 

posted @ 2021-12-05 00:07  lanwf  阅读(385)  评论(0)    收藏  举报