es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo prevenir que el ancla con una cadena de consulta vuelva a cargar la página.

¿Cómo puedo evitar que el ancla recargue la página cuando hay cadenas de consulta incluidas en la URL? A continuación se muestra un enlace que recarga la página antes de redirigir directamente a la sección.

<a href="https://iamhoste.com/experiences/?in-home-chef-experiences/#explore">Explorar Experiencias</a>

Al hacer clic en este enlace, se recarga la página y luego se redirige a la sección (#explore). ¿Hay alguna forma de evitar la recarga?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible evitar que la página se recargue al hacer clic en un enlace de anclaje que incluye cadenas de consulta en la URL. Para lograr esto, puedes utilizar JavaScript y evitar el comportamiento predeterminado del enlace de anclaje.

    Así es como puedes hacerlo:

    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
      anchor.addEventListener('click', function (e) {
        e.preventDefault();
    
        const hashvalue = this.hash;
        const target = document.querySelector(hashvalue);
    
        target.scrollIntoView({
          behavior: 'smooth'
        });
      });
    });
    

    En el código anterior, estamos utilizando el método querySelectorAll para seleccionar todos los enlaces de anclaje que comienzan con el símbolo de numeral. Luego, estamos agregando un event listener de clic a cada uno de ellos.

    Dentro del event listener, estamos utilizando el método preventDefault() para detener el comportamiento predeterminado del enlace de anclaje, que es recargar la página.

    En su lugar, estamos utilizando el método scrollIntoView() para desplazarnos suavemente a la sección con la ID correspondiente especificada en el valor de hash de la URL.

    Al utilizar este código JavaScript, puedes evitar que la página se recargue al hacer clic en un enlace de anclaje con cadenas de consulta.

Comments are closed.