我在我的網站上有類似Facebook的照片瀏覽器的彈出窗口模式。當模式打開時,它將顯示來自其他頁面的內容,我想更改地址欄值和歷史記錄以顯示此內容。如何修改facebook的照片查看器的歷史記錄?
模式中有一個下拉框將模態中的內容更改爲不同頁面的內容。發生這種情況時,我再次想要更改地址欄值和歷史記錄以顯示頁面已更改。
從本質上講,我想正是複製Facebook的照片瀏覽器中,您可以通過嘗試行爲:
- Clicking on this link
- 點擊
Photos
- 點擊頁面上的照片
- 單擊向右或向左箭頭(或使用鍵盤上的箭頭鍵)更改內部值
- a)單擊在瀏覽器中
- B)前進和後退歷史記錄按鈕點擊了圖片瀏覽器
我試圖創建一個的jsfiddle來展示我在這個地方,但的jsfiddle顯然不會讓歷史被操縱。因此,我已經把my code online here和you can download from here。
幾個關鍵點:
- 開始通過查看索引頁,然後使用鏈接轉到測試頁
- 當模式被關閉時,按下後退按鈕應該不是重新打開模式,而是應該帶你回到索引頁面。
- 在URL關閉模式,按下正向按鈕應該重新打開該模式在它的原始狀態Facebook的照片瀏覽器不
- 在我的生產代碼,完整的URL將被改變,而不是添加/更改一個變量後在演示代碼所示
'replaceState'呢? –
你已閱讀該頁面?你錯過了['popstate'事件](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history#The_popstate_event)嗎? –
@ Karl-AndréGagnon也許我的閱讀速度太快了,但是在我看來,'popstate'是一種你所捕捉的事件,而不是你稱之爲從歷史中刪除某個項目的功能。 – Nate