Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Utilizar hash

Estas en el tema de Utilizar hash en el foro de Frameworks JS en Foros del Web. Hola a todos, tras leer un monton de temas en este foro y tutoriales en otras paginas no veo nada claro este tema. Como hago ...
  #1 (permalink)  
Antiguo 23/07/2011, 14:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Utilizar hash

Hola a todos, tras leer un monton de temas en este foro y tutoriales en otras paginas no veo nada claro este tema.

Como hago para que al hacer click en algun sitio de la web (un a, o lo que sea) cambie la url pero sin recargar la pagina (utilizo AJAX como comprendereis).

Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 23/07/2011, 18:24
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Utilizar hash

Deduciendo de tu título, lo que quieres cambiar es el hash, NO la URL (eso sería otra historia muy diferente).

Los navegadores más modernos (Chrome, Firefox 5, Safari, y creo que Explorer9, aunque no pondría la mano en el fuego por este último, no lo he probado) registran en el historial cada cambio en el #hash, y avisan a la página.

En navegadores más antiguos, los cambios en el #hash son indetectables (hay que comprobarlo continuamente con setInterval) y no se guardan en el historial (hay que un truco con un iframe, y variables para evitar cache)

Luego tu solo tienes que poner el código necesario para que cada vez que cambie, cargar los datos correspondientes, o mostrar las partes correspondientes de la página. También, evidentemente, deberías cambiar los vínculos para que tuvieran esta forma:

Código HTML:
Ver original
  1. <a href="#token1">Ir a token1</a>
  2. <a href="#token2">Ir a token2</a>

.... etc

En resumen, olvídate de implementarlo por tu cuenta porque sería casi imposible hacerlo realmente bien excepto que tengas un público muy concreto, y lánzate a usar la ligera librería jQuery Tools, que ya te lo da todo hecho. Y si, la página está en inglés, pero siempre quedará http://translate.google.com/ y este foro para las dudas.

http://flowplayer.org/tools/toolbox/history.html
__________________
I (L) Google
  #3 (permalink)  
Antiguo 24/07/2011, 10:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Utilizar hash

Yo en ningun momento he hablado de historial ni nada por el estilo.
Lo que quiero saber es la funcion o la forma de cambiar el hash por medio de JavaScript.

Segun el metodo que tu me dices al hacer click en ese enlace la pagina se actualizara y yo no quiero eso.

Un saludo, gracias
  #4 (permalink)  
Antiguo 25/07/2011, 05:45
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Utilizar hash

Cuando pones un vínculo de la forma:
Código HTML:
Ver original
  1. <a href="http://www.forosdelweb.com/f77/utilizar-hash-931527/#...">...</a>
La página NO se actualiza. Solo se actualiza el hash.

Si quieres acceder leer el valor actual, solo tienes que usar:
Código Javascript:
Ver original
  1. location.hash;

Lo que quería resaltarte en mi primer mensaje, es que es un lío enorme averiguar cuando cambia, porque cada navegador tiene sus «quirks», sus particularidades =)
__________________
I (L) Google
  #5 (permalink)  
Antiguo 25/07/2011, 05:45
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Utilizar hash

Ams, y para cambiarlo:

Código Javascript:
Ver original
  1. location.href = "#...";
__________________
I (L) Google
  #6 (permalink)  
Antiguo 25/07/2011, 08:05
Avatar de RoggerElfo  
Fecha de Ingreso: enero-2008
Ubicación: En la ciudad de los Reyes LIMA !
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Utilizar hash

yo lo hago llamando a funcion javascript no ?? con ajax deberia ser algo asi ... (usando AS3 claro)

function onClickHandler(e:MouseEvent):void
{
navigateToURL (new URLRequest("javascript:peticion('pagina.php')"),'_ self');
}

y la funcion javascript que la recibe no ?
  #7 (permalink)  
Antiguo 25/07/2011, 15:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Utilizar hash

Cita:
Iniciado por perryjr Ver Mensaje
Cuando pones un vínculo de la forma:
Código HTML:
Ver original
  1. <a href="http://www.forosdelweb.com/f77/utilizar-hash-931527/#...">...</a>
La página NO se actualiza. Solo se actualiza el hash.
Pero si existe un div se desplazara hasta ese div.

Al final he encontrado otra solucion
Código Javascript:
Ver original
  1. window.location.hash = "..."

Con esa funcion se añade el hash.


Un saludo y gracias
  #8 (permalink)  
Antiguo 26/07/2011, 11:19
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Utilizar hash

Solo una nota final, tu código te obliga a poner un evento onClick en todos y cada uno de los vinculos de la página, para que no se vayan a otra página. Usé el otro método porque me parecía un poco más eficiente que poner unas cuantas decenas de eventhandlers, así el navegador se encarga de todo el trabajo.

Si son pocos links, o la otra solución te va bien, genial! =)
__________________
I (L) Google
  #9 (permalink)  
Antiguo 26/07/2011, 11:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Utilizar hash

No utilizare eso porque uso JQuery :)

Gracias

Etiquetas: ajax, hash, recargar
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 14:20.