Foros del Web » Programando para Internet » Javascript »

Cambiar hash sin dejar historia

Estas en el tema de Cambiar hash sin dejar historia en el foro de Javascript en Foros del Web. Cada vez que cambio el hash de la página mediante javascript se genera una historia en donde puedo volver atrás a la página con el ...
  #1 (permalink)  
Antiguo 19/09/2011, 04:21
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Cambiar hash sin dejar historia

Cada vez que cambio el hash de la página mediante javascript se genera una historia en donde puedo volver atrás a la página con el hash anterior.

¿Cómo puedo evitar esta historia?

Ejecuten el siguiente código y verán a lo que me refiero.

Código Javascript:
Ver original
  1. window.location.hash = 'hash';
  2. setTimeout( function() { window.location.hash = 'nuevoHash' }, 2000 );

Saludos!

Última edición por de-troit; 19/09/2011 a las 04:34
  #2 (permalink)  
Antiguo 19/09/2011, 06:05
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cambiar hash sin dejar historia

Se me ocurrió esta forma, lo pongo por si acaso a alguien mas le sirve:

Código Javascript:
Ver original
  1. //Extendemos objeto location con una función para poner un hash:
  2. window.location.setHash = function( hash ) {
  3.    hash = ( typeof hash !== 'undefined' ) ? '#' + hash : '#';
  4.  
  5.    if( window.location.hash.indexOf('#') !== -1 ) window.location.replace(
  6.         window.location.href.replace( /#.*/, hash )
  7.    );
  8.  
  9.    else window.location.replace( window.location.href + hash );
  10. }
  11.  
  12. //Ponemos un hash y al cabo de 2 segundos se cambia:
  13. window.location.setHash( 'hash' );
  14. setTimeout( function() { window.location.setHash( 'nuevoHash' ) }, 2000 );

Y ya no hay historia! se cambia de forma silenciosa :D

Última edición por de-troit; 19/09/2011 a las 16:42

Etiquetas: dejar, hash, historia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.