2012-09-19 38 views
1

我用.load做了一個ajax請求。它運作良好。但我有一個網址欄的問題。我想更改網址欄。例如。當ajax加載/聯繫頁面時。我想將網址欄更改爲about/contact。用ajax和window.location假冒url吧

我用過這個。

window.location.replace = about/contact; 

但現在,他直接重定向到此頁面。但我不想,該網頁將重定向到該網址。我該如何解決這個問題?

謝謝!

+0

你不能做到這一點。但是,您可以爲不重新加載頁面的URL添加一個錨點,例如'www.example.com#about' – Uooo

+0

看到這個答案: http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page – Jeff

+0

@ w4rumy [你確定嗎? ?](https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history)。 CNTRL + F **添加和修改歷史條目** – Ohgodwhy

回答

5

你可以用歷史API做到這一點,雖然support is not universal yet,雖好於比IE等瀏覽器。有關使用示例:http://html5demos.com/history。它會根據需要修改可見的URL,並且還允許您使用後退按鈕返回到之前的狀態。

建議您對此使用類似history.js的東西,因爲它對於尚不支持歷史API的瀏覽器具有相應的行爲。它將首先使用History API,如果不存在,將使用hash技術。

如果你想要做自己動手,那麼肯定一下就歷史API,它是如何工作的,這裏的一些地方開始:article 1article 2

+1

我強烈建議添加[此鏈接](https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history)。它不需要API,並且在許多現代瀏覽器中受到支持。 – Ohgodwhy

+0

好的鏈接@Ohgodwhy,已添加它。我建議history.js的主要原因是因爲它如何作爲一種不支持的瀏覽器的polyfill –