Target automatique pour liens

Script javascript pour ouvrir un lien dans une nouvelle fenêtre si le lien est externe, dans la même fenêtre si le lien est interne au site.

Ce script ouvrira automatiquement les liens externes (commençant par
http://, www et ftp) dans une nouvelle fenetre et les liens internes dans la parent.

<script language="JavaScript">

var site = '#URL_SITE_SPIP';

function targetLinks() {
 var str;
 var where;
 where="_blank";

 for(var i=0;i<=(document.links.length-1);i++) {
  str=document.links[i].href;
  if((str.search(site)==-1)&&((str.search('http://')!=-1)
  ||(str.search('www.')!=-1)
  ||(str.search('ftp://')!=-1))){
   document.links[i].target=where;
  }
 }
}

</script>

N’oubliez pas d’appeler le script dans le body :

<body onLoad="targetLinks();">

d’après un message de Régis sur la liste SPIP
http://munci.little-pinguin.net

Discussion

7 discussions

  • paysdetrie

    Salut à tous!

    Je recherche un moyen pour générer des articles SPIP en fonction d’un mot clé cliqué, MAIS sur la même page.

    Pensez-vous que le target automatique pour lien est LA SOLUTION?

    Merci!

    Reply to this message

  • Musicattiva

    merci!!!

    Grazie dall’Italia.

    Perfect script!

    Reply to this message

  • 1

    Le script marche bien dans Firefox et Konqueror. Par contre j’ai des problèmes dans IE6 : les liens internes ouvrent également une nouvelle fenêtre. Personne n’as eu ce problème? Qu’est-ce qui pourrait être mon erreur? Comment éviter cela?
    Des idées?

    Merci d’avance

    Joz

    • Je me réponds moi même :

      j’ai changé la ligne

      if((str.search(site)==-1)&&((str.search(’http://’)!=-1)

      en

      if((str.search(site)==-1)&&((str.search(’http://www’)!=-1)

      Cela a l’ai de fonctionner correctement maintenant, si qqun voit un problème éventuelle avec cette solution merci de m’avertir.

      Joz

    Reply to this message

  • Excellent !

    Et si on a acquis plueisuers noms de domaine pour le même site, que doit-on modifier dans la fonction ?

    Merci !

    Reply to this message

  • Sauf erreur,le script n’est pas compatible avec IE7 Beta 2. Le lien s’ouvre toujours dans la même fenêtre.

    Reply to this message

  • 1

    ou c’est t’y qu’on met le script javascript ? je suis super super débutant !!!!

    • Si tu n’as pas encore trouvé la solution, il faut coller ce script dans la partie

      <head> ... </head>

      de tes pages html (par exemple sommaire.html, rubrique.html) c’est-à-dire dans les pages où tu veux que ça marche comme ça.

      La balise

      <body>

      est à modifier comme décrit ...
      Mais comme je l’ai dit, chez moi ça ouvre tous les liens (externes et internes) dans une nouvelle fenêtre et ça fait plus de mal que du bien.

      un touche pomme enfoncée +clic (sous mac) sur le lien et le celui-ci s’ouvre dans un nouvel onglet, avec Firefox sous windows ça devrait être ctrl clic sur le lien pour obtenir la même chose.

      reste à faire une petite introduction dans son site sur le bon usage des navigateurs (et le bon choix surtout) ;-)

    Reply to this message

  • marche trop bien chez moi, tous les liens s’ouvrent dans une nouvelle fenêtre ... :-(

    Vaut mieux recourir au tab-browsing ;-)

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom