将额外的页面推送到历史记录

时间:2019-01-17 17:02:44

标签: javascript reactjs react-router

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

示例: 我们有一个公共市场,以及10种资源的轮播。我将尝试完成的流程就是这样

主页(拥有前10大资源轮播)->单击资源->将公共市场推入用户的历史记录(用户无需登陆页面)->用户可以浏览资源详细信息。

用户从资源页面单击返回->他进入公开市场->单击返回->再次进入主页

之所以有些奇怪,是因为我要在React中重做我公司的登录页面,但是公共市场在另一台服务器上,并且我不能真正改变公共市场本身的逻辑。我很确定答案是否定的,但是希望仍然存在:)

1 个答案:

答案 0 :(得分:2)

您可以使用历史记录方法和onpopstate事件在javascipt中进行操作。

参阅文档: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);