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
?
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
?
- Not sure you can do it without changing the page. – Nalum Commented Aug 5, 2011 at 11:30
3 Answers
Reset to default 12You 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