我用.load做了一個ajax請求。它運作良好。但我有一個網址欄的問題。我想更改網址欄。例如。當ajax加載/聯繫頁面時。我想將網址欄更改爲about/contact。用ajax和window.location假冒url吧
我用過這個。
window.location.replace = about/contact;
但現在,他直接重定向到此頁面。但我不想,該網頁將重定向到該網址。我該如何解決這個問題?
謝謝!
我用.load做了一個ajax請求。它運作良好。但我有一個網址欄的問題。我想更改網址欄。例如。當ajax加載/聯繫頁面時。我想將網址欄更改爲about/contact。用ajax和window.location假冒url吧
我用過這個。
window.location.replace = about/contact;
但現在,他直接重定向到此頁面。但我不想,該網頁將重定向到該網址。我該如何解決這個問題?
謝謝!
你可以用歷史API做到這一點,雖然support is not universal yet,雖好於比IE等瀏覽器。有關使用示例:http://html5demos.com/history。它會根據需要修改可見的URL,並且還允許您使用後退按鈕返回到之前的狀態。
建議您對此使用類似history.js的東西,因爲它對於尚不支持歷史API的瀏覽器具有相應的行爲。它將首先使用History API,如果不存在,將使用hash技術。
如果你想要做自己動手,那麼肯定一下就歷史API,它是如何工作的,這裏的一些地方開始:article 1,article 2
我強烈建議添加[此鏈接](https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history)。它不需要API,並且在許多現代瀏覽器中受到支持。 – Ohgodwhy
好的鏈接@Ohgodwhy,已添加它。我建議history.js的主要原因是因爲它如何作爲一種不支持的瀏覽器的polyfill –
使用ajax歷史插件,如jquery-address。
看看這個: https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin
你不能做到這一點。但是,您可以爲不重新加載頁面的URL添加一個錨點,例如'www.example.com#about' – Uooo
看到這個答案: http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page – Jeff
@ w4rumy [你確定嗎? ?](https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history)。 CNTRL + F **添加和修改歷史條目** – Ohgodwhy