2010-09-07 73 views
2

我正在尋找更新狀態欄中的網址的方法.. 我有一個庫,當您點擊通過圖庫的方式時,我希望圖像ID顯示在網址中,以便用戶可以直接鏈接到圖像..使用javascript更新URL參數,而不破壞歷史記錄?

我讀過關於使用哈希等。但就我所嘗試過的而言,這是「毀掉」歷史。 如果我點擊瀏覽器中的後退按鈕,則會顯示前一張圖片。

是否可以在不破壞歷史記錄的情況下添加或更新URL參數?

在此先感謝

回答

1

這樣做只是這樣一來,切換到圖像時,散列添加到URL,例如:

location+='#image-'+image_id 

您的位置將成爲

http://example.org/images/#image-3 

,而不是最初的

http://example.org/images/ 

and onload,if if location.hash不爲空,並且與^image-(\d+)$(正則表達式模式)相匹配,如果匹配,則執行通常的操作,如果用戶單擊了圖像編號爲(\d+)的圖像。

要保存歷史記錄,請使用reallysimplehistory

+0

謝謝!我認爲這是可能的畫廊顯示ID和顯示正確的圖片時在圖片ID中輸入我正在使用Jquery Cycle,並且它是關於此問題的jquery論壇的主題:http://forum.jquery.com/topic/jquery-cycle-plugin-trying-to-achieve-permalinks -while-using-paging - 我將檢查真正簡單的圖書館!謝謝! – guzh 2010-09-08 12:38:52

3

使用location.replace以取代當前的位置:

與一個在所提供的網址替換當前文檔。與assign()方法的區別在於,在使用replace()後,當前頁面不會保存在會話歷史記錄中,這意味着用戶將無法使用「後退」按鈕導航到該頁面。

+0

哼,我試過了,但是它重新加載了頁面,我也不想那麼做.. XD謝謝(: – guzh 2010-09-08 12:36:38

+0

@guzh:你只能在不重新加載的情況下更改URI片段 – Gumbo 2010-09-08 16:43:46

+0

hum,okey。I發現我會使用散列,而不是更容易(:感謝您的幫助,我會進一步研究您的解決方案! – guzh 2010-09-09 09:25:52