Redirection lien dans le même onglet [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021
-
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021
-
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

Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
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.



Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021

Oui je peux ajouter du javascript.

Et quelle serait la procédure ?
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021
>
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

D'accord, je vais essayer de voir si je trouve comment on fait.

Merci pour le renseignement.
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021

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');
}
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021
>
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

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 ?
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021

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"]');
Messages postés
10
Date d'inscription
vendredi 31 janvier 2020
Statut
Membre
Dernière intervention
18 mai 2021
>
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

Merci pour les renseignements.

J'ai réussi à faire ce que je voulais avec du Javascript

$(document).ready(function(){    
    //target="_top" 
$("a[href^='https://lien.fr']").attr('target','_top');