我想添加一些GET
參數到頁面的URL。我加載了這樣的內容:更改ajax請求的網址
$("#content").load("shop.pl #content .product", $.param({categ:1)}));
我如何更改URL具有相同的參數?categ=1
?
我想添加一些GET
參數到頁面的URL。我加載了這樣的內容:更改ajax請求的網址
$("#content").load("shop.pl #content .product", $.param({categ:1)}));
我如何更改URL具有相同的參數?categ=1
?
可以使用HTML5 pushState API實現這一目標。但是,只有最新的瀏覽器支持它,IE甚至在IE9中都不支持它。預先沒有辦法做到這一點。但是,有一個約定,您可以使用location.hash來指示狀態由ajax請求修改的頁面。有關如何使用網址哈希來指示頁面狀態的更多信息,您可能需要查看this。
有一個庫,History.js,它可以用於過渡到pushState。它的API非常接近pushState API,但如果瀏覽器不支持pushState,它將透明地提供散列摺疊回退。
+1和我一樣的想法 - 只有更快(我正在編輯的問題!):-) – andyb
10x我會嘗試history.js – bliof
pushState API鏈接中斷 – michaelsnowden
您可以嘗試使用pushState()
方法(請參閱documentation,您也可以閱讀有關onpopstate
event)操縱可見URL。
這樣你就可以用你想要的方式改變URL。
如何更改,恕不刷新頁面URL一些演示是在這裏:http://html5demos.com/history
你的內容正在通過AJAX加載的,所以可能網址應該有它的修改哈希代碼 - 看http://code.google.com/web/ajaxcrawling/docs/specification.html
OP想要更改當前網站的GET參數,而不是我相信URL的散列部分。 – Tadeck
是的,但這在瀏覽器中不支持HTML5 pushState API,它基本上都是最新的瀏覽器。操縱網址的散列片段*是按照慣例*他要去指示和恢復網頁的變化狀態。 –
不知道你能做到這一點不改變頁面。 – Nalum