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 :

appel de fonction .


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Points : 108
    Points
    108
    Par défaut appel de fonction .
    Bonjour,
    j'ai eu un comportement bizzar lors de l'appelle d'une fonction.si j'appelle la fonction depuis un boutton s'amarche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="" onclick="Sexy.alert('Nice!'); return false;">Show a JavaScript alert with a new look!</a>
    et si je veux l'executer directement s'amarche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SCRIPT LANGUAGE = 'JAVASCRIPT'> 
    Sexy.alert('Nice!');
    </script>
    et méme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <SCRIPT LANGUAGE = 'JAVASCRIPT'> 
    Sexy.alert('Nice!');
    return false;
    </script>
    s'marche pas.des idée ???merci d'avance

  2. #2
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT LANGUAGE = 'JAVASCRIPT'> 
    function Sexy.alert(){
    alert('Nice!');
    return false;
     
    }
    </script>
     
    <a href="" onclick="Sexy.alert(); ">Show a JavaScript alert with a new look!</a>

  3. #3
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Points : 108
    Points
    108
    Par défaut
    Voila la partie du code de cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script src="mootools.js" type="text/javascript"></script>
    <script src="sexyalertbox.v1.js" type="text/javascript"></script>
    <script src="sexyalertbox.packed.js" type="text/javascript"></script>
    <link rel="stylesheet" href="sexyalertbox.css" type="text/css" media="all" >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    window.addEvent('domready', function() {
    Sexy = new SexyAlertBox();
    });Sexy.alert('Nice!'); return false;
    </script>
     
    <SCRIPT LANGUAGE = 'JAVASCRIPT'> 
    Sexy.alert('Nice!');
    return false;
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="" onclick="Sexy.alert('Nice'); return false;">Show a JavaScript alert with a new look!</a>
    ???

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    window.addEvent('domready', function() {
       Sexy = new SexyAlertBox();
    });
    Sexy.alert('Nice!');
    return false;
    </script>
    Tu attends que ton arbre dom soit chargé pour déclarer ton objet Sexy, bonne idée, sauf que ton Sexy.alert('Nice!') n'attends pas lui que le dom soit chargé et que ton objet Sexy soit déclaré...

    De plus, il y a un problème de portée de variable, ton objet Sexy n'existe que dans ta fonction qui est exécutée lors de l'évènement domready. Tu dois déclarer ta variable en dehors de la fonction pour qu'elle soit accessible depuis d'autres fonctions...


    Enfin, l'attribut LANGUAGE de la balise script est "deprecated", il est recommandé d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    ...
    </script>
    A+

  5. #5
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Points : 108
    Points
    108
    Par défaut
    merci BaBeuH
    pour votre explication mais tu peu me cité comment faire dans ce cas .le bout de code pour l'appelle ??? merci .

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.addEvent('domready'
    ??
    ben c'est quoi ça ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    var Sexy = null; // On déclare la variable Sexy pour qu'elle soit accessible partout dans la page
    window.addEvent('domready', function() {
       Sexy = new SexyAlertBox(); // On instancie la variable une fois que la page est chargée
       Sexy.alert('Nice!'); // Et une fois la variable instanciée, on peut l'utiliser
    });
    </script>
    De cette façon, l'appel de l'objet Sexy sur le onclick doit également fonctionner.

    @SpaceFrog
    window.addEvent('domready'

    ??
    ben c'est quoi ça ?
    C'est du mootools je pense

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui je sais ...
    c'était juste pour dire qu'il avait tous les elements en main pour comprendre le pourquoi de l'instanciation de l'objet ...

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    window.addEvent('domready', function() {
       Sexy = new SexyAlertBox();
    });
    </script>
    De plus, il y a un problème de portée de variable, ton objet Sexy n'existe que dans ta fonction qui est exécutée lors de l'évènement domready.
    euh... Pas convaincu. Ce serait vrai pour "var Sexy =", mais là, dès que la ligne sera executée, l'objet Sexy sera ajouté au DOM de window. En tout cas c'est ce qu'il me semble

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Effectivement, tu as raison, la variable Sexy est "globale" puisqu'il n'y a pas le mot clé "var", elle n'est donc pas limitée au scope de la fonction.

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

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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