2016-12-14 132 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')來獲取歷史記錄列表。