代码之家  ›  专栏  ›  技术社区  ›  ChronicLogic

将额外一页推到历史记录

  •  0
  • ChronicLogic  · 技术社区  · 5 年前

    是否可以将一个额外的页面推送到用户的历史记录中?

    例子: 我们有一个公共市场,以及一个十大资源的转盘。我想要完成的流程是这样的

    主页(保留前10个资源传送带)->单击资源->将公共市场推送到用户的历史记录(用户不登录页面)->用户登录到资源详细信息。

    用户单击“资源”页上的“后退”->他转到“公共市场”->单击“后退”->再次登录主页

    这有点奇怪的原因是因为我正在为React中的公司重做登录页面,但是公共市场在另一台服务器上,我不能真正改变公共市场本身的逻辑。我很确定答案是否定的,但希望还在继续。

    1 回复  |  直到 5 年前
        1
  •  2
  •   Lortet    5 年前

    您可以在javascript中使用历史方法和onPopState事件来实现。

    参见DOC: https://developer.mozilla.org/en-US/docs/Web/API/History_API

    例如,当用户单击资源时,可以使用此代码

    history.pushState({}, "marketplace", "markeplace.html");
    window.location.href = 'ressource.html';
    

    当用户到达资源时,也可以使用replaceState和pushState,但也将使用onPopState事件:

    history.replaceState({}, "marketplace", "markeplace.html");
    history.pushState({}, "ressource", "ressource.html");
    
    window.addEventListener('popstate', (event) => {
        document.location.href = document.location;
    }, false);