首页 > 解决方案 > 将额外的页面推送到历史记录

问题描述

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

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

主页(拥有top10资源轮播)->点击资源->将公共市场推送到用户的历史记录(没有用户登陆页面)->用户登陆资源详情。

用户从资源页面点击返回->他进入公共市场->点击返回->再次登陆主页

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

标签: javascriptreactjsreact-router

解决方案


您可以使用历史方法和 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);

推荐阅读