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 :

Executer une seule fois un script


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Executer une seule fois un script
    Bonjour a tous, je suis débutant en javascript, et je suis confronté a un petit problème qui ne doit pas être très compliqué a résoudre...
    J'ai réalisé un site sous spip et j'ai mis un script dans le head de ma page d'accueil afin de vérifier si l'utilisateur utilise IE(pour des raisons d'affichage de la page)...si le visiteur utilise un autre navigateur que IE, un message d'alerte apparait pour lui dire que ce site est optimisé pour IE etc etc...tout cela marche très bien, mais le souci c'est que dès que je reviens sur ma page d'accueil le message réapparait a chaque fois!!!alors que moi je voudrais que dès que l'utilisateur arrive sur le site, il soit informé que le site est fait pour IE, mais que si il décide de visiter le site quand même, ce message ne revienne pas a chaque fois qu'il clique sur le lien Accueil...
    Donc voila, si vous avez quelques idées, je suis preneur!!

    merci d'avance.

    Guillaume.

  2. #2
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Bonjour,

    Il ya la solution de mettre un cookie chez le client pour savoir si la vérification à déjà été faite. Tu créé le cookie apres avoir envoyé le message, et tu vérifie avant d'envoyer ton message que le cookie n'est pas défini.

    Par contre si le client a désactivé les cookies ca ne fonctionnera pas.

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci!!
    J'ai mis en place ce que tu proposes et disons que ça marche un peu près
    en fait si je me connecte a mon site avec un autre navigateur que ie (mozilla firefox par exemple) j'ai le message d'avertissement a la connexion (ce qui jusque la est parfait!), mais lorsque je reclique sur un lien dirigeant vers l'accueil j'ai une nouvelle fois le message (la c'est pas normal...), et après tout fonctionne normalement, je peux recliquer sur le lien accueil et le message n'apparait plus...pourtant j'ai l'impression que mon script est correct !!!

    <code>
    <script language="javascript">
    djvenu=LireCookie("dejavenu");
    if (djvenu==null) {
    EcrireCookie("dejavenu", "oui");
    if (navigator.appName != 'Microsoft Internet Explorer') {
    window.alert("Ce site est optimisé pour fonctionner sous Internet Explorer.\nVous utilisez un autre navigateur, des problèmes d'affichage peuvent donc survenir.")
    }
    }
    </script>

    - les fonctions EcrireCookie et LireCookie sont prises sur le site mentionné dans la premiere réponse -

    Donc voila, je sais pas du tout...si quelqu'un voit la faille ou as déja eu ce pb...

  4. #4
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Tu met ton script dans quelle partie de ta page ?

    Ca serait pas mieux de mettre tout ca dans une fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function DejaVenu() {
      var djvenu=LireCookie("dejavenu");
      if (djvenu==null) {
        EcrireCookie("dejavenu", "oui");
        if (navigator.appName != 'Microsoft Internet Explorer') {
          window.alert("Ce site est optimisé pour fonctionner sous Internet Explorer.\nVous utilisez un autre navigateur, des problèmes d'affichage peuvent donc survenir.");
        }
      }
    }
    Tu met ca entre <script></script> dans le <head> et tu peux appeler ta fonction ou tu veux. Sinon pour débugger, essai les "alert" du contenu du cookie juste après l'avoir écrit pour voir.

    J'ai essayé sur le onLoad du body ca fonctionne parfaitement chez moi, je suis sous Firefox 1.5.0.6 x)

    Voilou.

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé dele mettre dans le onload de mon body, mais le probleme c'est que j'ai deja un onload et je ne sais pas si ça marche avec 2...(et peut etre aussi que j'appelle mal la fonction, c'est pas impossible...)
    en tout cas comme ca ca ne marche pas :
    <code>
    <body class="page_sommaire" onload="setHover('menulist')" onload="javascript: DejaVenu()">
    </code>

    ...

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ah ca y'est j'ai trouvé comment mettre deux choses dans le onload!!!
    <code>
    <body class="page_sommaire" onload="setHover('menulist');DejaVenu()">
    </code>

    donc la fonction passe bien et ca a l'air de marcher!!
    C'est parfait!
    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Executer une seule fois une etape data
    Par m.brahim dans le forum SAS Base
    Réponses: 3
    Dernier message: 26/03/2012, 17h58
  2. Executer un script une seule fois
    Par giraud vias dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/07/2010, 16h54
  3. un bloc de code executé une seule fois ?
    Par root76 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/08/2006, 18h24
  4. Réponses: 1
    Dernier message: 19/03/2005, 22h47
  5. Réponses: 2
    Dernier message: 30/11/2004, 11h48

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