810 votes

Comment pouvez-vous vérifier pour un #hash dans une URL à l'aide de JavaScript?

J'ai quelques jQuery code JavaScript que je veux lancer seulement quand il y a un dièse (#) ancre de lien dans l'URL. Comment pouvez-vous vérifier ce personnage à l'aide de JavaScript? J'ai besoin d'un simple fourre-tout test qui permettrait de détecter les Url de ce genre:

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

Fondamentalement, quelque chose le long des lignes de:

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

Si quelqu'un pouvait me diriger dans la bonne direction, ce serait très apprécié.

1470voto

Gareth Points 42402

Simple:

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

347voto

Mark Points 1197
<script>
  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
  }
</script>

55voto

José Leal Points 2658

Mettre les éléments suivants:

<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>

35voto

Marc Diethelm Points 650

Si l'URI n'est pas le document de l'emplacement de cet extrait à faire ce que vous voulez.

var url = 'example.com/page.html#anchor',
    hash = url.split('#')[1];

if (hash) {
    alert(hash)
} else {
    // do something else
}

23voto

Jon Skeet Points 692016

Avez-vous essayé?

if (url.indexOf("#") != -1)
{
}

(Où url est l'URL que vous souhaitez vérifier, évidemment.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X