2011-08-05 110 views
8

我想添加一些GET參數到頁面的URL。我加載了這樣的內容:更改ajax請求的網址

$("#content").load("shop.pl #content .product", $.param({categ:1)})); 

我如何更改URL具有相同的參數?categ=1

+0

不知道你能做到這一點不改變頁面。 – Nalum

回答

11

可以使用HTML5 pushState API實現這一目標。但是,只有最新的瀏覽器支持它,IE甚至在IE9中都不支持它。預先沒有辦法做到這一點。但是,有一個約定,您可以使用location.hash來指示狀態由ajax請求修改的頁面。有關如何使用網址哈希來指示頁面狀態的更多信息,您可能需要查看this

有一個庫,History.js,它可以用於過渡到pushState。它的API非常接近pushState API,但如果瀏覽器不支持pushState,它將透明地提供散列摺疊回退。

+1

+1和我一樣的想法 - 只有更快(我正在編輯的問題!):-) – andyb

+0

10x我會嘗試history.js – bliof

+0

pushState API鏈接中斷 – michaelsnowden

3

你的內容正在通過AJAX加載的,所以可能網址應該有它的修改哈希代碼 - 看http://code.google.com/web/ajaxcrawling/docs/specification.html

+2

OP想要更改當前網站的GET參數,而不是我相信URL的散列部分。 – Tadeck

+1

是的,但這在瀏覽器中不支持HTML5 pushState API,它基本上都是最新的瀏覽器。操縱網址的散列片段*是按照慣例*他要去指示和恢復網頁的變化狀態。 –