¿Cómo se puede comprobar si hay un #hash en una URL usando JavaScript?

Resuelto Philip Morton asked hace 15 años • 20 respuestas

Tengo un código jQuery/JavaScript que quiero ejecutar solo cuando hay un #enlace de anclaje hash () en una URL. ¿Cómo puedes comprobar este carácter usando JavaScript? Necesito una prueba simple y general que detecte URL como estas:

  • example.com/page.html#anchor
  • example.com/page.html#anotheranchor

Básicamente algo como:

if (thereIsAHashInTheUrl) {
    do this;
} else {
    do this;
}
Philip Morton avatar Nov 18 '08 18:11 Philip Morton
Aceptado

Uso simple del hash de ubicación :

if(window.location.hash) {
  // Fragment exists
} else {
  // Fragment doesn't exist
}
Gareth avatar Nov 18 '2008 11:11 Gareth
  if(window.location.hash) {
      var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character
      alert (hash);
      // hash found
  } else {
      // No hash found
  }
Mark Notton avatar Jul 13 '2011 16:07 Mark Notton

Pon lo siguiente:

<script type="text/javascript">
    if (location.href.indexOf("#") != -1) {
        // Your code in here accessing the string like this
        // location.href.substr(location.href.indexOf("#"))
    }
</script>
José Leal avatar Nov 18 '2008 11:11 José Leal