IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Un cookie pour une fonction javascript


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Un cookie pour une fonction javascript
    Bonjour,
    je souhaite proposer à mes visiteurs une case à cocher permettant de définir si oui ou non, les liens externes s'ouvrent dans une nouvelle fenêtre.

    La fonction est créée et fonctionnelle (quel comble !).
    La voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function linksInNewWindow()
    {
    	var liens = document.getElementsByTagName('a');
    	// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
    	// Une boucle qui parcourt le tableau (array) liens du début à la fin.
    	for (var i = 0 ; i < liens.length ; i++)  {
    		// Si les liens ont un l'attribut hreflang (caractéristique, sur mon site, de liens externes), alors on fait les ouvre dans une nouvelle fenetre...
    		if (liens[i].hreflang)  {
    		liens[i].title = '[ext] '+liens[i].title; // on indique la mention "ext" dans le titre du lien, pour prévenir (accessoire)
    			// ...au clique de la souris.
    			liens[i].onclick = function()  {
    				window.open(this.href);
    				return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
    			};
    		}
    	}
    }
    Elle est liée à une case à cocher (checkbox) que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name="newwin" type="checkbox" onclick="linksInNewWindow();" onkeypress="linksInNewWindow();" id="linksnewwin" />
    J'aimerais que lorsqu'un visiteur clique sur cette case à cocher, son choix soi mémorisé. Autrement dit, je voudrais qu'une fois que le visiteur a coché, la fonction javascript soit effective durant toute la navigation sur le site, pages après pages. Pour l'instant, on coche la case et la la fonction est effective uniquement sur la page en cours, et un changement de page l'annule.
    J'imagine que cela est réalisable avec un cookie... Stratégiquement, il faudrait un cookie qui active la fonction à chaque fois qu'une page de mon site est chargée, si la case a été cochée une fois ? Enfin je ne sais pas trop, je m'en remets à vos lumières.

    Merci de votre aide !

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    un cookie ne fait rien, il stocke des informations.
    chaque page doit vérifier la valeur contenue dans le cookie et agir en conséquence


  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par bigboomshakala
    un cookie ne fait rien, il stocke des informations.
    chaque page doit vérifier la valeur contenue dans le cookie et agir en conséquence

    Certes, et cela devrait permettre d'assurer l'ouverture des liens dans une nouvelle fenêtre durant toute la navigation sur le site, non ?
    Grâce au cookie, la page regarde sa valeur, si la case a été cochée alors la fonction d'ouverture dans nouvelle page est activée, sinon non.

    Si je ne fais pas fausse route, c'est la technique (la programmation en javascript) qui me fait défaut et que je recherche.

    Merci

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function lienExterneOuPas()
    {
      var flag = getcookie('linksAreExternal');
     
      if (flag)
        ouverture lien externe
      else
        ouverture lien interne
    }
    getcookie : cf. google

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2012, 17h14
  2. Réponses: 4
    Dernier message: 06/09/2010, 15h37
  3. paramètre d'appel pour une fonction javascript
    Par narutobaka dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2008, 16h04
  4. Ne pas utiliser un id existant pour nommer une fonction javascript..
    Par guiguich dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/11/2007, 23h26
  5. Réponses: 11
    Dernier message: 10/05/2004, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo