Cambiar URL de Javascript como Facebook hace

Actualmente estoy trabajando en una aplicación web orientada a AJAX. He estado buscando las diferentes formas de replicar el estado actual de AJAX (o el estado de la aplicación) con la URL del navegador, por lo que también funciona el botón de retroceso y refrescante.

En las últimas semanas veo diferentes enfoques que involucran el uso del hash (#) y diferentes marcos JS.

En la documentación se indica que no es posible cambiar la URL del navegador desde JS. Hoy fui a Facebook y abrí una imagen, y la url cambió (aunque la imagen se abrió en una caja de luz). Después de cerrar la imagen, la URL del navegador volvió a la página original.

¿Tienes alguna idea de cómo logran este comportamiento?

Respuestas a la pregunta(3)

Su respuesta a la pregunta