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?

Answers:

Answer

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.

Answer

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

Answer

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

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.