Ubicación del navegador de actualización de Jquery, no redirigir
Pregunta
Estoy construyendo una serie de acordeones básicos para un proyecto.
Queremos que tengan páginas estáticas y enlazables. Así que también hemos creado páginas invidividuales para cada uno de los estados abiertos.
Por ejemplo,
/ whoweare es el control deslizante principal.
Pero tenemos un control deslizante secundario ubicado en / whoweare / whatwedo
Lo que estoy buscando haber hecho es que, cuando un usuario hace clic en un encabezado en / whoweare, se abre el control deslizante y la barra de direcciones se actualiza a / whoweare / whatwedo, pero no hay una redirección real. La ubicación de la URL simplemente debería cambiar, nada más.
He intentado usar
window.location.replace($(this).attr('href'));
return false;
Pero eso no parece haber logrado lo que quería, todavía se recarga en una nueva página.
¿Alguna otra sugerencia?
Solución
No puede cambiar la URL sin redirigir: sería una pesadilla de phishing (cambiar la URL a la de un banco mientras permanece en el sitio de phishing, por ejemplo).
Solo puede manipular el hash del documento, es decir, http://domain.com/#identifier - así es como Google, Facebook, etc. proporcionan a los sitios AJAX soporte para el historial del navegador.
Duplicado exacto de # 352343 Cambiando la barra de direcciones del navegador sin actualizar .
actualización: HTML5 ahora permite pushState
, pero solo dentro del mismo dominio.
Otros consejos
Echa un vistazo al plugin jQuery bbq de Ben Alman
$ .bbq.pushState () - http : //benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/