PDA

View Full Version : Change address bar for AJAXed links


markkanning
03-10-2008, 09:38 PM
Hello all,
I'm sure this is coming up quite a bit so maybe someone's got the answer...
How does one change the text of the address bar to reflect a page change implemented with AJAX?

In other words, I've got a small site where all the pages are AJAXed into through the index page. However, using PHP/Javascript, I've managed to cobble a function that will change the page given the presence of a page variable in the url string:

//HOME PAGE URL
http://www.mysite.com

//INSIDE PAGE
http://www.mysite.com/?page=contact

That all works fine. However, how can I have javascript change that page variable in the address bar when someone clicks on a link that is ajaxing a page in?

NOTE: using window.location.hash is not an option as I need to pass a variable for PHP reasons. Any non-hash alternatives?

rnd me
03-11-2008, 01:42 AM
using the search param (?), instead of the hash (#) will cause all current browsers to refresh the page, not something i think you want.

so, in order to use a url, it would have to be a hash.

this means that you need to create a 'landing page'- a simple html/js page the immediately converts the hash to a search and transfers the url to your php script.

note that this would be incoming only; bookmarking a dynamic page would use the search, not the hash. make sure your server can find both versions.

edit:
one more idea: use ?s and a full-screen iframe to show your content. the hash of your top page can change while the search of the iframe changes