在ajax请求上更改URL

时间:2011-08-05 11:20:24

标签: javascript ajax jquery

我想在页面网址中添加一些GET参数。我正在加载这样的内容:

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

如何更改网址以使其具有相同的参数?categ=1

3 个答案:

答案 0 :(得分:11)

您可以使用HTML5 pushState API来实现此目的。但是,只有最新的浏览器支持它,IE在IE9中甚至不支持它。没有办法预先做到这一点。但是,有一个约定,您将使用location.hash来指示由ajax请求修改状态的页面。有关如何使用网址哈希指示网页状态的详细信息,您可能需要查看this

有一个库History.js,可用于过渡到pushState。它的API非常接近pushState API,但如果浏览器不支持pushState,它将透明地提供哈希值回退。

答案 1 :(得分:3)

您的内容是通过AJAX加载的,因此URL可能会修改哈希片段 - 请参阅http://code.google.com/web/ajaxcrawling/docs/specification.html

答案 2 :(得分:0)

您可以尝试使用pushState()方法操纵可见网址(请参阅documentation,您也可以阅读onpopstate event)。

这样您就可以按照自己的方式更改网址。

有关如何在不重新加载网页的情况下更改网址的一些演示,请访问:http://html5demos.com/history

相关问题