Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lien comportant : #

Sujet résolu
    21 janvier 2020 à 11:36:59

    Bonjour, j'ai remarqué l'utilisation de liens du type www.monsite.com/#TEXT en balise a href

    Je creuse ceci car ça ne rafraîchi pas la page comme un ?nom=Pierre,  je souhaite l'utiliser mais comment récupérer ce fameux 'TEXT' ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2020 à 12:11:10

      Salut, ce type de lien à pour but de faire scroller une page directement vers l'élément portant l'id correspondant.

      Par exemple, si tu click sur la date de ton post sur ce sujet, tu obtiens une redirection vers https://openclassrooms.com/forum/sujet/lien-comportant-1#message-93631964
      Puisque tu es déjà sur cette page, clicker sur le lien te fera juste scroller jusqu'à l'élément portant l'id="message-93631964".

      Tu peux obtenir la valeur derrière le # de cette façon :

      const adresse = 'https://openclassrooms.com/forum/sujet/lien-comportant-1#message-93631964';
      const hash = (new URL(adresse)).hash; // = '#message-9363196'
      const id = hash.slice(1); // = 'message-9363196'

      -
      Edité par BrainError 21 janvier 2020 à 12:29:33

      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2020 à 12:46:09

        Bonjour,

        Petite précision, les éléments HTML <a/> sont des ancres (le a provient de anchor en anglais).

        Lorsque l'élément pointe sur la pages en court de lecture, et utilise un # pour cibler un autre élément de la pages, on appelle ça.. une ancre aussi (à tord).

        Tu trouvera un article détailler sur les ancres ici.

        Pour que ton sujet ai un rapport avec javascript (puisque on est sur le forum javascript), sache qu'il est possible d'empêcher un événement natif grâce à la méthode preventDefault(). Voici un exemple d'annulation de la redirection lors du clique sur le lien qui a pour id ID :

        document.getElementById('ID').addEventListener('click', function(event) {
           event.preventDefault();
        });

        Edit: La prochaine fois pose la question dans le forum HTML/CSS, il te redirigerons ici si c'est pas un comportement natif mais quelques chose de crée grâce à javascript.

        -
        Edité par Angelisium 21 janvier 2020 à 12:47:50

        • Partager sur Facebook
        • Partager sur Twitter

            !

          21 janvier 2020 à 13:28:40

          J'ai trouvé une alternative, je vais passer par du jQuery qui récupère une info passée dans un attribut de la balise en question.

          Merci à vous

          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2020 à 14:25:02

            Bonjour, JQuery est un plugin OBSOLÈTE surtout si c'est juste pour faire ça.

            • Partager sur Facebook
            • Partager sur Twitter

                !

              22 janvier 2020 à 9:44:16

              Angelisium a écrit:

              Bonjour, JQuery est un plugin OBSOLÈTE surtout si c'est juste pour faire ça.


              Bonjour,

              Pouvez-vous m'en dire plus ?

              • Partager sur Facebook
              • Partager sur Twitter
                22 janvier 2020 à 10:04:09

                Click sur la signature "vanilla JS" de Angelisium.

                Aujourd'hui, tout ce que tu peux faire avec jQuery, tu le fera en mieux (et considérablement plus rapide dans certain cas) avec simplement javascript.

                • Partager sur Facebook
                • Partager sur Twitter
                  22 janvier 2020 à 12:36:47

                  Bonjour,

                  BrainError à tout dit, j'avais poster un message ici expliquant pourquoi JQuery c'est le mal.
                  Un jour j'écrirais un article sur les 1001 bonnes raison de ne pas utiliser JQuery.

                  • Partager sur Facebook
                  • Partager sur Twitter

                      !

                  Lien comportant : #

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown