2012-06-30 32 views
1

我的東西更新網址是這樣的:JavaScript網址操作和後退導航

window.history.pushState(null, "Page title", "/?param=" + myParamValue); 

這工作得很好,但當用戶點擊後退按鈕,在URL中獲取更新,但網頁不刷新。

我有一個更新內容的ajax例程,但如果可能的話,我不想重複執行後退/前進導航,我只是希望在用戶點擊後退/前進瀏覽器時重新加載頁面鈕釦。

問題:有沒有辦法強制頁面重新加載給定的網址瀏覽器後退/前進行動從用戶?

Bonus Q:另外,如果瀏覽器在舊版瀏覽器上不支持window.history.pushState,該怎麼辦?我應該在try/catch塊中包含該代碼嗎?

+3

看看這個問題:HTTP:/ /stackoverflow.com/questions/10571734/html5-history-api-demo – frenchie

回答

1

你應該在這個jQuery插件來看看,這可能對您有用:

http://www.asual.com/jquery/address/

我發現閱讀此線程:

https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin

我希望它能幫助。

關於舊的瀏覽器問題,我認爲你不必爲此煩惱,因爲你正在使用ajax,它也需要一個現代瀏覽器。主要問題是:誰會訪問您的網站?如果它的主要人過40yo,也許你應該費心......

只是我的意見;)

編輯:小心IE9,它不是在它處理。 THX到nbrooks的信息

+0

謝謝,關於跨瀏覽器的支持...大聲笑 - 有人可能在IE8/9或smt,但是不是一個大問題:) – JohnIdol

+0

IE 9處理這個!不是嗎? IE8是另一回事...... :)而且正如我所說:只是我的看法。我不再爲舊瀏覽器而煩惱,我只是用PHP進行檢查並回應:「去一個真正的瀏覽器」頁面。它可能是愚蠢的,但它是一個選擇。 – Maresh

+1

@Maresh nah它不支持直到IE 10 – nbrooks

3
if(typeof window.history.pushState === 'function') 
    //handle your url rewriting 
else 
    //support for older browsers 

至於你提到後退按鈕的支持問題,在註釋中提供的鏈接提供了非常好的實現的功能