Javascript 如何在SPF.js导航到新URL后保持页面的当前位置

Javascript 如何在SPF.js导航到新URL后保持页面的当前位置,javascript,youtube,Javascript,Youtube,顺便说一句,对不起我的英语。请为我编辑: 我使用的是像单页应用程序一样的快速导航。但是当SPF.js调用SPF.navigateurl时,我会被重定向到另一个页面 对于示例,当我向下滚动我的网站时,单击“下一页”将正常加载而不刷新,但“滚动Y位置”不会保存,我将进入顶部。当用户只想停留在当前的滚动状态时,这真的很烦人 SPF.js调用nspf.navigate时是否有任何可配置的状态或位置?或者我必须做一些技巧来做到这一点。答案是 您可以使用会话存储来存储位置,然后返回到 重新加载页面时的位置,

顺便说一句,对不起我的英语。请为我编辑:

我使用的是像单页应用程序一样的快速导航。但是当SPF.js调用SPF.navigateurl时,我会被重定向到另一个页面

对于示例,当我向下滚动我的网站时,单击“下一页”将正常加载而不刷新,但“滚动Y位置”不会保存,我将进入顶部。当用户只想停留在当前的滚动状态时,这真的很烦人

SPF.js调用nspf.navigate时是否有任何可配置的状态或位置?或者我必须做一些技巧来做到这一点。

答案是

您可以使用会话存储来存储位置,然后返回到 重新加载页面时的位置,如下所示:

$(window).scroll(function() {
  sessionStorage.scrollTop = $(this).scrollTop();
});

$(document).ready(function() {
  if (sessionStorage.scrollTop != "undefined") {
    $(window).scrollTop(sessionStorage.scrollTop);
  }
});

对于使用vanilla javascript的SPF.js用户,这应该有一个技巧:

let xCoord = 0;
let yCoord = 0;
document.addEventListener('spfrequest', () => {
    xCoord = window.pageXOffset;
    yCoord = window.pageYOffset;
});
document.addEventListener('spfdone', () => {
    window.scrollTo(xCoord, yCoord);
});