javascript - 将额外的页面推送到历史记录
问题描述
是否可以将额外的页面推送到用户的历史记录?
示例:我们有一个公共市场,以及前 10 名资源的轮播。我试图完成的流程就是这样
主页(拥有top10资源轮播)->点击资源->将公共市场推送到用户的历史记录(没有用户登陆页面)->用户登陆资源详情。
用户从资源页面点击返回->他进入公共市场->点击返回->再次登陆主页
这有点奇怪的原因是因为我在 React 中为我的公司重做登录页面,但公共市场在另一台服务器上,我无法真正改变公共市场本身的逻辑。我很确定答案是否定的,但希望继续存在:)
解决方案
您可以使用历史方法和 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);