Redirection lien dans le même onglet

Résolu
jkbee26 Messages postés 48 Statut Membre -  
jkbee26 Messages postés 48 Statut Membre -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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
  2. jkbee26 Messages postés 48 Statut Membre
     
    Oui je peux ajouter du javascript.

    Et quelle serait la procédure ?
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      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. jkbee26 Messages postés 48 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      D'accord, je vais essayer de voir si je trouve comment on fait.

      Merci pour le renseignement.
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > jkbee26 Messages postés 48 Statut Membre
       
      Par 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. jkbee26 Messages postés 48 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Le 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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > jkbee26 Messages postés 48 Statut Membre
       
      oui.
      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