Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/06/2017, 15:17
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar de urls sin que recargue el navegador y conservando información.

Si estás siguiendo ese ejemplo, necesitarás cargar la librería jQuery antes de ese bloque de código. Puedes conseguirlo en su página oficial.

Si no deseas usar librerías, puedes probar con este ejemplo:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     this.addEventListener("click", function(e){
  3.         e.target.className == "historyAPI" && (function(event, link){
  4.             event.preventDefault();
  5.  
  6.             var href = link.href;
  7.  
  8.             getContent(href, true);
  9.  
  10.             document.querySelector(".historyAPI").classList.remove("active");
  11.             link.classList.add("active");
  12.         })(e, e.target);
  13.  
  14.         window.addEventListener("popstate", function(e){
  15.             getContent(location.pathname, false);
  16.         });
  17.  
  18.         function get(url){
  19.             return new Promise(function(done, fail){
  20.                 var xhr = new XMLHttpRequest();
  21.  
  22.                 xhr.open("GET", url, true);
  23.                 xhr.addEventListener("load", function(){
  24.                     this.status == 200 && done(this.responseText);
  25.                 }, false);
  26.                 xhr.send();
  27.             });
  28.         }
  29.  
  30.         function getContent(url, addEntry){
  31.             get(url)
  32.                 .then(function(data){
  33.                     document.querySelector("#contentHolder").innerHTML = data;
  34.  
  35.                     if (addEntry == true){
  36.                         history.pushState(null, null, url);
  37.                     }
  38.                 });
  39.         }
  40.     }, false);
  41. });

Puedes usarlo directamente como está, sin añadir librería alguna. Son unas cuantas líneas más de código, pero muchas menos que las miles que constituyen a jQuery.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand