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 !

    Répondre à ce message

  • Musicattiva

    merci !!!

    Grazie dall’Italia.

    Perfect script !

    Répondre à ce 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

    Répondre à ce message

  • Excellent !

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

    Merci !

    Répondre à ce message

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

    Répondre à ce 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) ;-)

    Répondre à ce message

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

    Vaut mieux recourir au tab-browsing ;-)

    Répondre à ce message

Ajouter un commentaire

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom