2013-10-16 57 views
0

我目前工作的一個網站,並遇到下列問題就來了:如何防止瀏覽器將狀態推入歷史?

假設我的網站的名字是www.mysite.com.在頁面的第一個電話,我的JavaScript檢查,是否有在URL中某些參數,這是對於Web應用程序狀態很重要。這些參數是例如:

lang - language --> lang=1 means German 
page - current Page --> page=home means its the homepage 
cats - categories --> cats=1,2,3 means that the default categories are 1,2 and 3 

如果你只是打電話給www.mysite.com,腳本檢測到,沒有參數設置。它會設置默認參數。根據與hashmark URL修改,我設置的URL:

www.mysite.com/#/page=home&lang=1&cats=12,13,18 

這個真正的問題是,瀏覽器歷史記錄中兩種狀態進行設置。第一個是www.mysite.com,第二個是帶有參數的複雜URL。

所以,想象一下我目前是

www.mysite.com/#/page=home&lang=1&cats=12,13,18 

,現在按回車鍵。瀏覽器把我帶到

www.mysite.com 

,然後我的JavaScript檢測,有沒有參數,所以它再次帶我到

www.mysite.com/#/page=home&lang=1&cats=12,13,18 

如何解決這個問題?是否可以完全手動管理歷史記錄,以便我可以通過JavaScript推送每個狀態?

謝謝!

+0

您是否可以讓網絡應用程序只使用缺省值而不在URL中包含任何散列值? –

+0

默認值是什麼意思? – tellob

回答

-1

切換到使用SessionStorage來存儲參數,並可選擇回退到cookie等。

然後僅爲您希望能夠返回的狀態使用hashtag。

+0

這些都是國家,我想回到。 – tellob