Ver Mensaje Individual
  #12 (permalink)  
Antiguo 05/12/2011, 13:17
carlosvelez5
 
Fecha de Ingreso: diciembre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Cambiar Direccion URL sin Actulizar

Holaaa

mira pues te tengo la solución. con la función de history.replaceState y history.pushState de javascript. funciona en todos los navegadores menos en i.e, pero como alternativa para los navegadores que no soportan esta función podes implementarla con el hash.

aquí te dejo un ejemplo muy facil y práctico.

Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.   <title>PushState</title>
  5.     <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script><!-- Actualizar -->
  6.     <script>
  7.     $(document).ready(function() {
  8.         // Para navegadores que soportan la función.
  9.         if (typeof window.history.pushState == 'function') {
  10.             pushstate();           
  11.         }else{
  12.             check(); hash();
  13.         }
  14.     });
  15.     // Chequear si existe el hash.
  16.     function check(){
  17.         var direccion = ""+window.location+"";
  18.         var nombre = direccion.split("#!");
  19.         if(nombre.length > 1){
  20.             var url = nombre[1];
  21.             alert(url);
  22.         }
  23.     }
  24.    
  25.     function pushstate(){
  26.         var links = $("a");
  27.         // Evento al hacer click.
  28.         links.live('click', function(event) {
  29.             var url = $(this).attr('href');
  30.             // Cambio el historial del navegador.
  31.             history.pushState({ path: url }, url, url);
  32.             // Muestro la nueva url
  33.             alert(url);
  34.             return false;
  35.         });
  36.        
  37.         // Función para determinar cuando cambia la url de la página.
  38.         $(window).bind('popstate', function(event) {
  39.             var state = event.originalEvent.state;
  40.             if (state) {
  41.                 // Mostrar url.
  42.                 alert(state.path);
  43.             }
  44.         });
  45.     }
  46.    
  47.     function hash(){
  48.         // Para i.e
  49.         // Función para determinar cuando cambia el hash de la página.
  50.         $(window).bind("hashchange",function(){
  51.             var hash = ""+window.location.hash+"";
  52.             hash = hash.replace("#!","")
  53.             if(hash && hash != ""){
  54.                 alert(hash);
  55.             }
  56.         });
  57.         // Evento al hacer click.
  58.         $("a").bind('click', function(e) {
  59.             e.preventDefault();
  60.             var url = $(this).attr('href');
  61.             // Cambio el historial del navegador.
  62.             window.location.hash = "#!"+url;
  63.             //$(window).trigger("hashchange");
  64.             return false
  65.         });
  66.     }
  67.     </script>  
  68.   </head>
  69.   <body>
  70.     <a href="page-help.html">help</a>
  71.     <a href="other.html"> Otro link</a>
  72.   </body>
  73. </html>

Cita:
Iniciado por dksoft Ver Mensaje
Holaaa eh estado actualmente buscando esta SOLUCION

Muchos dicen que no es Posibleee pero yo eh visto Claros ejemplos en internet que si es Posiblee.

Lo que quiero es poder cambiar la Direcicion de la BArra de Tareas del Explorador sin que te envie a esa URL..

ya que si recuerdan el AJAX lo que hace es cargar el contenido nuevo sin ACtulizar debido a eso emos Perdido el Cambio de URLS evitando que los usuarios accedan a dicho contenido Directamente.

Bueno al Grano.. lo que quiero es Simplemente cambiar la URL del Explorador sin causar consecuensia. sin actulizar ni nada...

Un Claro ejemplo es "Faceboook" que cuando estas mirando Fotos y deseas cambiarlas le das "Siguiente" Cambia la imagen mediante AJAX, y Cambia la URL sin Refrescar nada. tengo este script:

parent.location.hash = $(this).val();

pero solo cambia la Ancla apartir de "#" tenia otra pagina de un amigo que desaparecio y no le eh podido localizar pero si el pudo es posible ademas Facebook lo prueba.


Bueno Muchos Saludos y Gracias.