Come si può controllare un #hash in un URL usando JavaScript?

Ho del codice jQuery/JavaScript che voglio eseguire solo quando c'è un link di ancoraggio hash (#) in un URL. Come si può controllare questo carattere usando JavaScript? Ho bisogno di un semplice test catch-all che rilevi URL come questi:

  • esempio.com/pagina.html#ancora
  • esempio.com/pagina.html#ancora.

Fondamentalmente qualcosa di simile a:

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

Se qualcuno potesse indicarmi la giusta direzione, sarebbe molto apprezzato.

Soluzione

Semplice:

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

Mettete quanto segue:

<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>
Commentari (1)

Avete provato questo?

``javascript if (url.indexOf('#') !== -1) { // Url contiene un # }



(Dove `url` è l'URL che vuoi controllare, ovviamente).
Commentari (0)