IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Générer des liens dynamiquement lors du scroll bas


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Générer des liens dynamiquement lors du scroll bas
    Bonjour amis développeurs, j'ai besoin de votre aide précieuse (je suis novice je précise)

    Je travaille sur un environnement web avec un CMS WordPress.

    Mon Template utilise plusieurs sidebar à droite ainsi qu'un footer avec une multitude de liens qui sont utiles a l'utilisateur mais fort préjudiciable au référencement.

    Mon idée serait de n'afficher ces liens uniquement lorsque l'utilisateur effectue un scroll vers le bas de manière a ce qu'il ne soit pas détectés par Googlebot.

    Auriez-vous une idée de code ?

    sachant que j'en ai essayé plusieurs notamment avec "addEventListener" mais au final lors du scroll bas, la page devenait vide et il ne restait plus que les liens :-(

    merci pour votre patience

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 498
    Points : 13 165
    Points
    13 165
    Par défaut
    pour restreindre l'accès à une partie du contenu, vous pouvez par exemple faire une page wordpress protégée par un mot de passe.
    ainsi seuls les utilisateurs avec ce mot de passe pourront voir ces liens.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci pour votre réponse,

    Je ne veux pas restreindre de pages aux utilisateurs, je veux juste différer une partie de l'affichage (sidebar+footer) après un scroll et éviter ainsi qu'une partie soit crawlée.

  4. #4
    Responsable LaTeX

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2013
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2013
    Messages : 2 129
    Points : 11 190
    Points
    11 190
    Billets dans le blog
    5
    Par défaut
    cette discussion devrait t'apporter des reponses :https://stackoverflow.com/questions/...e-certain-text

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci pour l'information, cependant Googleoff n'est pas vraiment adapté à mon cas

    "googleon" et "googleoff" ne sont pris en charge que par Google Search Appliance (lorsque vous hébergez vos propres résultats de recherche, généralement pour votre propre site Web interne).

    Ils ne sont pas du tout pris en charge par la recherche sur le Web de Google.

    Pour autant que je sache, il n'existe aucun moyen de dire à Google de ne pas indexer un élément de la page.


    Je souhaite vraiment utiliser une solution en javascript pour générer mes liens et uniquement après le scroll bas de manière à ce qu'il n'apparaisse pas dans le code avant. Je précise aussi que les solutions en css (visible/hidden) ne me convient pas non plus car google les détecte.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    38 981
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 38 981
    Points : 65 385
    Points
    65 385
    Billets dans le blog
    1
    Par défaut
    Je vois plusieus possibilités:

    la plus simple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!--googleoff: index-->
    <div>ne pas référencer</div>
    <!--googleon: index-->
    ensuite tu peux rajouter le contenu dynamiquement en créant les éléments avec javascript après le chargement ou avec un ajax pour peupler ta balise avec les liens...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    C'est justement cette partie dynamique qui me pose problème... je cherche de l'aide pour ce code

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    15 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 15 628
    Points : 39 661
    Points
    39 661
    Par défaut
    Bonjour,
    sachant que j'en ai essayé plusieurs notamment avec "addEventListener" mais au final lors du scroll bas, la page devenait vide et il ne restait plus que les liens :-(
    ça sent le document.write


    C'est justement cette partie dynamique qui me pose problème...
    il existe bien des méthodes pour y parvenir, il aurait été bon que tu nous montres ce que tu as essayé !

    Voici toutefois une méthode

    • supposons que l'on ait cette élément dans la page
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <ul id="mes-liens-cachés"></ul>

    • supposons que l'on ait un objet descriptif des liens à ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // description des données à ajouter
    const links = [
      {
        "url": "https://www.developpez.net/forums/",
        "text": "Forum DVP"
      },
      {
        "url": "https://www.developpez.net/forums/f9/webmasters-developpement-web/",
        "text": "Forum Web (HTML-CSS)"
      },
      {
        "url": "https://www.developpez.net/forums/f2000/javascript/",
        "text": "Forum JavaScript"
      }
    ];
    • il suffit alors de lancer la création lorsque le scroll à atteint une certaine position, mais cela tu le sais.

    voilà à quoi pourrait ressembler le code pour cet ajout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // fonction d'ajout
    function ajoutLinks() {
      const minScroll = 500; // c'est à ajuster suivant besoin
      // test de la position
      if (window.pageYOffset > minScroll) {
        //==========================================================
        // !Important! supprime l'écouteur sous peine de duplication
        //==========================================================
        window.removeEventListener("scroll", ajoutLinks);
        // création et ajout des  éléments
        const elemDestination = document.getElementById("mes-liens-cachés");
        links.forEach((link) => {
          // le code que l'on veut insérer
          const html = `<li><a href="${link.url}">${link.text}</a>`;
          // une méthode d'insertion simple
          elemDestination.insertAdjacentHTML("beforeend", html);
        });
      }
    }
    // mise en place écouteur sur scroll
    window.addEventListener("scroll", ajoutLinks);

  9. #9
    Membre éprouvé Avatar de jreaux62
    Homme Profil pro
    Webmaster
    Inscrit en
    juin 2021
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : juin 2021
    Messages : 484
    Points : 921
    Points
    921
    Par défaut
    Bonjour,

    Un simple display:none; ne suffit pas ?
    Passage en block au Scroll.

    Les blocs masqués ne sont pas "lus", si ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci énormément nosmoking je vais essayé ca c'est très gentil de m'apporter ton aide.

    jreaux62 : Les blocs masqués sont crawlés.

  11. #11
    Membre éprouvé Avatar de jreaux62
    Homme Profil pro
    Webmaster
    Inscrit en
    juin 2021
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : juin 2021
    Messages : 484
    Points : 921
    Points
    921
    Par défaut
    Citation Envoyé par virtu67 Voir le message
    jreaux62 : Les blocs masqués sont crawlés.
    Bah... Je préfère nager la brasse, et sans masque...

    Sinon, il me semble aussi qu'utiliser Ajax pour "inclure du contenu dans un div au scroll" me parait pas mal comme idée.
    Ça va un peu au-delà de ce que propose NoSmoking, puisqu'on peut alors inclure toute une structure HTML (un footer formaté complet, par ex.), plutôt que "juste un liste de liens".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDF] perte des liens spécifiques lors de l'import de Word
    Par Monsieur_Max dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 04/11/2008, 12h35
  2. [MySQL] Générer des liens php
    Par Lord Silk dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/03/2008, 12h24
  3. Générer des id dynamiquement
    Par Tyler Durden dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/08/2007, 13h16
  4. créer des liens dynamiquement
    Par techtonyc dans le forum Web
    Réponses: 2
    Dernier message: 04/04/2007, 10h01
  5. générer des pages dynamiques a partie d'une bdd
    Par dolf13 dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo