2016-12-14 134 views
0

有可能获得浏览器历史列表?例如,如果我定位如下:page1 -> page2 -> page1 -> page5,我希望能够得到的["page1", "page2", "page1", "page5"]数组(如此有效history.pop()应该给的goBack()反应路由器getHistory

回答

1

的URL有一个在浏览器中的任何History对象没有这样的API定义或实施或history library使用react-router它会引起一些安全问题(考虑到跨域的情况)

但是,您可以侦听位置的变化并手动存储它们,它不会带来安全问题,因为操作都在单个域中限制:

history.listen((location, action) => { 
    console.log(action, location.pathname, location.state); 
    // you can store the result anywhere you like 
    const prevUrls = window.sessionStorage.getItem('prevUrls') || []; 
    prevUrls.push(location.pathname); 
    window.sessionStorage.setItem('prevUrls', prevUrls); 
}) 

然后,您可以使用window.sessionStorage.getItem('prevUrls')来获取历史记录列表。