Ajouter about blank sur tous les liens

Bonjour,

Peut on mettre en place un seul script à ajouter dans un htaccess ou robots.txt ou autre qui fait que tous les liens s' ouvrent dans un nouvelle onglet et avec aussi l' attribut rel="nofollow".



--
La vie n'est pas telle qu'elle devrait etre. Elle est comme elle est.
> > C'est la facon dont nous la vivons qui fait la difference.

8 réponses

  1. Bonjour

    Pour cela tu peux utiliser du jquery (mais ce n est qu un solution parmi d autres:)
    tu charges la librairie jquery (je te laisse le soin d aller voir cela

    <script> 
    $(document).ready(function() { 
    //on attends que toute la page soit chargée et tu appelles la fonction  
       extLink(); 
     }); 
    
    
    //ici tu definis ta fonction. 
    function extLink() { 
    //tu selectionne tous les liens qui ont un chemin absolu commencant par http 
        $('a[href^=http]').attr('rel','nofollow').click( function() { 
    // tu ouvre les liens dans une nouvelle fenetre 
            window.open(this.href); 
    //tu empeche la fenetre courante d'ouvrir le lien  
            return false;  
        }); 
    });

    </script>

    \(^^\) (^_^) (/^^)/
    0
    1. Merci fredconv, je n'est pas de librairie jquery, est ce que si je copie ce code dans un nouveau fichier c'est bon?
      0
      1. dans ton fichier index.html a la fin(préférable pour que le contenu de tes pages se charge avant de cahrger jquery , pour ne pas a avoir a télécharger toi même la bibliothèque jquery tu peux la charger depuis internet. grace a ce code.

        tu rajoutes
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
        <script type="text/javascript" src="custom.js"></script>


        puis dans ton fichier "custom.js", tu ajoute le code

        $(document).ready(function() {  
        //on attends que toute la page soit chargée et tu appelles la fonction   
           extLink();  
         });  
        
        
        //ici tu definis ta fonction.  
        function extLink() {  
        //tu selectionne tous les liens qui ont un chemin absolu commencant par http  
            $('a[href^=http]').attr('rel','nofollow').click( function() {  
        // tu ouvre les liens dans une nouvelle fenetre  
                window.open(this.href);  
        //tu empeche la fenetre courante d'ouvrir le lien   
                return false;   
            });  
        });
        0
        1. En gros je copie à la fin de mon index.html:

          <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>  
          <script type="text/javascript" src="custom.js"></script>  
          
          <script>   
          $(document).ready(function() {   
          //on attends que toute la page soit chargée et tu appelles la fonction    
             extLink();   
           });   
          
          
          //ici tu definis ta fonction.   
          function extLink() {   
          //tu selectionne tous les liens qui ont un chemin absolu commencant par http   
              $('a[href^=http]').attr('rel','nofollow').click( function() {   
          // tu ouvre les liens dans une nouvelle fenetre   
                  window.open(this.href);   
          //tu empeche la fenetre courante d'ouvrir le lien    
                  return false;    
              });   
          });  
          
          
          </script> 


          Et je me crée, car j' en est pas, un fichier "custom.js" avec ce code dedans:

          $(document).ready(function() {    
          //on attends que toute la page soit chargée et tu appelles la fonction     
             extLink();    
           });    
          
          
          //ici tu definis ta fonction.    
          function extLink() {    
          //tu selectionne tous les liens qui ont un chemin absolu commencant par http    
              $('a[href^=http]').attr('rel','nofollow').click( function() {    
          // tu ouvre les liens dans une nouvelle fenetre    
                  window.open(this.href);    
          //tu empeche la fenetre courante d'ouvrir le lien     
                  return false;     
              });    
          });


          J' ai bien tout compris?
          La vie n'est pas telle qu'elle devrait etre. Elle est comme elle est.
          > > C'est la facon dont nous la vivons qui fait la difference.
          0
          1. heu

            tu as un fichier html qui doit ressembler ca cela:

            <html>
            <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" type="text/css" href="mystyle.css" />
            ....
            <title>ton titre</title>
            </head>
            <body><div>
            le contenu de ton site ...
            ...
            ...
            </div>
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
            <script type="text/javascript" src="custom.js"></script>
            </body>
            </html> 
            


            et dans le repertoire ou tu auras ton fichier index.html tu ajoutera un fichier custom.js (ou si tu le mets ailleurs il faut que tu ajuste ton chemin vers ce fichier.)
            qui contiendra le code

            $(document).ready(function() {  
            //on attends que toute la page soit chargée et tu appelles la fonction   
               extLink();  
             });  
            
            
            //ici tu definis ta fonction.  
            function extLink() {  
            //tu selectionne tous les liens qui ont un chemin absolu commencant par http  
                $('a[href^=http]').attr('rel','nofollow').click( function() {  
            // tu ouvre les liens dans une nouvelle fenetre  
                    window.open(this.href);  
            //tu empeche la fenetre courante d'ouvrir le lien   
                    return false;   
                });  
            });

            0
            1. j' ai donc copier dans mon index avant </body>:

              <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
              <script type="text/javascript" src="custom.js"></script>

              Puis j' ai créer mon "custom.js que j' ai mis dans mon /www puis que c'est là que mon site est..mais ca marche po ..
              0
              1. argh j ai fait une erreur de syntaxe désolé :D

                a la derniere ligne de code du fichier custom.js
                remplace
                });
                par
                }

                et ca devrait fonctionner
                0
            2. bé nan, toujours pas ..
              0
              1. pourtant ici je teste et ca fonctionne .... T_T

                dans le meme repertoire j ai:
                index.html avec pour code:
                <html>
                <head>
                <meta charset="utf-8" />
                
                <title>ton titre</title>
                </head>
                <body><div>
                <a href="#">Test 1</a>
                <a href="http://www.visiblemoon.com/">Test2</a>
                </div>
                <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
                <script type="text/javascript" src="custom.js"></script>
                </body>
                </html> 
                


                custom.js avec pour code:
                $(document).ready(function() {  
                //on attends que toute la page soit chargée et tu appelles la fonction   
                   extLink();  
                 });  
                
                
                //ici tu definis ta fonction.  
                function extLink() {  
                //tu selectionne tous les liens qui ont un chemin absolu commencant par http  
                    $('a[href^=http]').attr('rel','nofollow').click( function() {  
                // tu ouvre les liens dans une nouvelle fenetre  
                        window.open(this.href);  
                //tu empeche la fenetre courante d'ouvrir le lien   
                        return false;   
                    });  
                }


                et cela ouvre bien le lien externe dans une nouvelle page.. donc le code fonctionne
                si quelqun a une idée, car pour le moment je ne vois pas ce qui pourrait empecher cela de fonctionner ...
                0
            3. Salut, je comprend pas non plus pourquoi ca ne marche pas alors je t'est fait des captures d'écrans dé-fois que tu y verrais une erreur :

              Mon fichier custom.php placé dans le même répertoire que index.php:
              http://nsa29.casimages.com/img/2012/08/15/120815053017474139.jpg

              Le script placé avant </body>:
              http://nsa29.casimages.com/img/2012/08/15/120815053147285.jpg
              0