Chrome beforeunload事件和历史记录API

时间:2014-09-15 08:43:29

标签: javascript html google-chrome onbeforeunload html5-history

因此我有代码来存储具有抽屉菜单的响应页面的滚动位置和高度。

$(window).on('beforeunload', function (e) {
                if (window.history && window.history.replaceState) {
                    var $formContainer = $('#Form1'),
                        $drawerContent = $('#drawer-content'),
                        pageState = {
                            page: window.location.href,
                            formContainerHeight: $formContainer.height(),
                            drawerContentScrollTop: $drawerContent.scrollTop()
                        };
                    console.log(pageState, e.type)
                    window.history.replaceState(pageState, window.document.title);
                }
            });

在页面加载时,我在console.log.state上调试window.history.state,以确保在历史中返回/前进时的页面大小。

我在IE10 +,FireFox和Opera中获得了预期值,但chrome似乎记录了历史记录中页面的值+1。

1 个答案:

答案 0 :(得分:0)

你不应该如此努力,并且弄乱标题 Javascript提供了一组很好的方法来处理prev / next,同时实际停留在同一页面上:
即location.hash(Fragment Identifier)。
请改用它们:www.whatever / index#125,615其中x,y是你的值