2011-08-05 108 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,它基本上都是最新的浏览器。操纵网址的散列片段*是按照惯例*他要去指示和恢复网页的变化状态。 –