Comment vérifier la présence d'un #hash dans une URL en utilisant JavaScript ?

J'ai un code jQuery/JavaScript que je veux exécuter uniquement lorsqu'il y a un lien d'ancrage dièse (#) dans une URL. Comment vérifier la présence de ce caractère en utilisant JavaScript ? J'ai besoin d'un test fourre-tout simple qui détecterait les URL de ce type :

  • exemple.com/page.html#anchor
  • exemple.com/page.html#autre ancre`.

En gros, quelque chose du genre :

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

Si quelqu'un pouvait m'indiquer la bonne direction, ce serait très apprécié.

Solution

Simple :

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

Mettez ce qui suit :

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

Avez-vous essayé ?

``Javascript si (url.indexOf('#') !== -1) { // L'url contient un # }



(Où `url` est l'URL que vous voulez vérifier, évidemment).
Commentaires (0)