【问题标题】:onpopstate event is not triggered when using replaceState使用 replaceState 时不会触发 onpopstate 事件
【发布时间】:2019-01-14 14:11:52
【问题描述】:

在我的应用程序中,当用户通过导航栏导航到页面时,它会将其内容加载到 iframe 中。 iframe 正在向历史推送一个新条目,我也想在我的地址上反映 url,所以我使用 history.replaceState 这样做。 问题是,当我尝试收听 window.onpopstate 时,在浏览器中单击后退和前进时不会触发事件。 父应用程序是 Angular 5 应用程序,而 iframe 内的子应用程序也是 Angular 5 应用程序。 知道在这种情况下为什么以及如何触发 onpopstate 事件吗?

谢谢!

【问题讨论】:

    标签: javascript angular iframe popstate


    【解决方案1】:

    history.replaceState 不会在堆栈上放置新的历史条目,因此您将无法导航到先前的状态。请改用history.pushState

    【讨论】:

    • 感谢您的回答。由于 iframe 在历史记录中添加了一个条目,如果我将使用 history.pushState,那么我将不得不单击两次后退按钮才能返回上一页。还有其他想法吗?
    猜你喜欢
    • 2011-04-22
    • 2017-05-18
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多