Redirection lien dans le même onglet

Résolu
Bonjour tout le monde,

Par défaut avec mon cms, pour certains modules (boutons ...), les liens externes sont obligatoirement ouvert dans un second onglet.

J'ai juste à indiquer le lien dans le module mais je ne peux rien ajouter d'autres à ce moment là (je ne peux pas ajouter de target="top" à mon lien).

Je ne peux pas changer le fonctionnement du module.

Par contre je peux appliquer du code "supplémentaire" (html/css ...) appliqué à tout le site qui pourra s'appliquer au module repéré par son Id ou class.

Comment pourrais-je faire en sorte de le forcer à ouvrir certains liens externes dans le même onglet avec du code ?

Merci !

2 réponses

  1. Modérateur
    Bonjour,

    En css tu ne peux pas modifier le comportement des liens.
    Peux tu ajouter du code javascript ?
    Si oui, en JS, tu pourrais modifier l'attribut target.

    0
    1. Oui je peux ajouter du javascript.

      Et quelle serait la procédure ?
      0
      1. Modérateur
        Faire un script javascript qui cible l'élément via un ID ou une classe CSS et qui ajoute ou modifie l'attribut target de celui-ci.
        0
      2. @jordane45D'accord, je vais essayer de voir si je trouve comment on fait.

        Merci pour le renseignement.
        0
      3. Modérateur
        @jkbee26Par exemple, si tu mets une class "taclass" à tes liens
        var linkList = document.querySelectorAll('.taclass');
        
        for(var i in linkList){
         linkList[i].setAttribute('target', '_top');
        }
        
        0
      4. @jordane45Le code de l'élement est de ce type :

               <li id="idlien" class="classlien">
                          <a href="https://monsite.fr/" data-link-title="Actu" target="_blank" rel="nofollow">Actu</a></li>
        


        J'ai tenté de mettre ce code à l'emplacement ou je peux entrer du code pour tout le site :

        <script type="text/javascript">
        //<![CDATA[
        var linkList = document.querySelectorAll('.classlien');

        for(var i in linkList){
        linkList[i].setAttribute('target', '_top');
        }
        //]]>
        </script>


        Mais cela n'a eu aucun effet. Je pense que le problème vient du fait que la class cible tout l'élément. Est-il possible de cibler seulement le lien par son data-link-title ?
        0
      5. Modérateur
        @jkbee26oui.
        En utilisant un "selector" identique à ceux qu'on peut utiliser en css

        Un truc du genre
        var linkList = document.querySelectorAll('a[data-link-title="Actu"]');
        
        0