首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular platformLocation pushState不工作

Angular platformLocation pushState不工作
EN

Stack Overflow用户
提问于 2019-04-03 19:59:07
回答 1查看 1.6K关注 0票数 0

我想在第一次加载平台时向浏览器历史记录中注入一个新的状态,这样当用户单击浏览器的后退按钮时,它应该会登陆到应用程序的主页。

我尝试使用1. PlatformLocation pushState() 2. window.history.pushState()添加新状态。

代码语言:javascript
复制
location.pushState(null, 'home', 'home');
// window.history.pushState(null, 'home', 'home');

我甚至试着给出完整的URL

代码语言:javascript
复制
location.pushState(null, 'home', 'http://localhost:4200/home');
// window.history.pushState(null, 'home', 'http://localhost:4200/home');

它确实会向浏览器历史记录中添加一个新的状态,但当我单击浏览器的后退按钮时,什么也不会发生,即我仍然在同一页面中,但只有新添加的状态会从浏览器历史记录中删除。

EN

回答 1

Stack Overflow用户

发布于 2019-04-05 19:44:58

我已经在你的另一个问题中回答了这个问题:https://stackoverflow.com/a/55511843/11289490

当你调用history.pushState时,它只会用你想要的url将一个页面添加到历史记录中,但不会加载该网页,也不会检查该网页是否存在。

如果你想在返回时加载主页,你可以这样做:

代码语言:javascript
复制
 let locat = location.href;
    if (!!window.location.pathname && window.location.pathname !== '/') {
        history.replaceState(null,null,location.origin);
        history.pushState(null, null,locat);
    }

它会添加一个基于url的历史记录,然后在历史记录中添加完整的url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55494629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档