Como você pode verificar um #hash em um URL usando JavaScript?

Eu tenho algum código jQuery/JavaScript que eu quero executar apenas quando há um link de âncora de hash (#) em uma URL. Como você pode verificar esse caractere usando JavaScript? Eu preciso de um simples teste que detecte URLs como estas:

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

Basicamente algo na linha de:

if (thereIsAHashInTheUrl) {        
    do this;
} else {
    do this;
}

Se alguém me pudesse apontar na direcção certa, isso seria muito apreciado.

Solução

Simples:

if(window.location.hash) {
  // Fragment exists
} else {
  // Fragment doesn't exist
}
Comentários (11)

Ponha o seguinte:

<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>
Comentários (1)

Já tentou isto?

"javascript if (url.indexOf('#') !== -1) { // Url contém um # }



(Onde `url` é o URL que você quer verificar, obviamente).
Comentários (0)