Intenté usar la función load() de jQuery para cambiar/cargar contenido sin recargar. Eso funciona, pero el problema es: ¡la URL sigue siendo la misma!
Incluso si uso history.pushState() para cambiar la URL, eso no resuelve el problema. Ejemplo:
con el famoso window.history.pushState("object or string", "Title", "/new-url");
3) printscreen de mi página y su url
Importante: index.html, about.html y contact.html son archivos existentes que se cargarán con la función jquery a continuación.
HTML:
<div class="navbar"> <div class="content"> <div class="logo">My logo</div> <ul class="pages"> <li id="index">Index</li> <li id="about">About us</li> <li id="contact">Contact</li> </ul> </div> </div> <section id="page"> <div class="content"> <!-- PAGES LOAD HERE --> </div> </section> <div class="footer"> <div class="content"> --Footer-- All rights reserved. </div> </div>JS:
$(document).ready(function () { $('li').on("click", function () { $pageName = $(this).attr('id'); $('#page .content').load(`pages/${$pageName}.html`); $('li').removeClass('active'); //only to remove the selection of actual page in CSS $(this).addClass('active'); //only to add the selection of actual page in CSS window.history.pushState("object or string", "Title", `pages/${$pageName}.html`); }) })está describiendo "enrutamiento", que es la idea de que las URL coincidan con el contenido que se muestra.
En jquery, recomendaría buscar en Google: enrutador jquery o javascript router
SI está escribiendo en otros idiomas, puede buscar en Google [language] router .
más recientemente, Google está mostrando https://www.npmjs.com/package/jqueryrouter , que ahora está reenviando a https://github.com/scssyworks/silkrouter
Una vez que elija un enrutador, lea los documentos y regrese con más preguntas.