Change url on ajax request
I want to add some GET
parameters to the page URL. 开发者_如何转开发I am loading content like this:
$("#content").load("shop.pl #content .product", $.param({categ:1)}));
How can I change the URL to have the same parameter ?categ=1
?
You can use the HTML5 pushState API to achieve this. However, only the newest browsers support it and IE doesn't even support it yet in IE9. There was no way to do this previsouly. However, there is a convention that you would use location.hash to indicate a page which's state was modified by an ajax request. For more information on how to use url hashes to indicate state on your page you might want to have a look at this.
There is a library, History.js, which can be used for transition to pushState. It's API is very close to the pushState API, but it will transparently provide a hash fragement fallback if the browser does not support pushState.
Your content is being loaded via AJAX, so perhaps the URL should have it's hash fragment modified - see http://code.google.com/web/ajaxcrawling/docs/specification.html
You can try to manipulate the visible URL using pushState()
method (see documentation, you may wish to read also about onpopstate
event).
That way you can change the URL in a way you wish.
Some demonstration on how to change URL without page reloading is here: http://html5demos.com/history
精彩评论