1

我想要类似的东西document.referrer。但由于我正在构建一个单页应用程序,使用backboneand pushstate,值是"".

我怎样才能得到类似的东西history.prevState().url

编辑:我不需要这个事件。我想随时随地访问之前状态的信息。

4

1 回答 1

1

也许您可以简单地将最后一个状态存储在新状态对象中。

history.pushState({
    lastState: 'some state'
}, '', 'newpage.html');

console.log(history.state.lastState); //some state

如果您正在构建一个单页应用程序,即使没有关于如何启动状态转换的标准化,您也可以通过侦听popstateonhashchange事件设法拦截所有这些。

然后,您可以只推送数组中遇到的每个状态并将其序列化版本存储在localStorage. 这将允许您检索任何以前的状态。但是,此集合会增长,因此您必须确保控制它的大小。您也可以简单地保留最后一个状态而不是所有状态。

但是,建立跨模块的标准肯定会更好。它不仅使访问以前的状态更容易,而且在未来的变化方面也更容易维护和更灵活。

于 2013-08-28T03:22:10.130 回答