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 :

Ma fonction ne s’exécute pas


Sujet :

JavaScript

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 67
    Points : 62
    Points
    62
    Billets dans le blog
    1
    Par défaut Ma fonction ne s’exécute pas
    Bonjour à toutes et à tous,

    Ma fonction ne s’exécute pas

    Je suis débutant
    . Je n'arrive pas à exécuter ma première fonction.
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    <!DOCTYPE html>
    <html lang="fr">
    	<head>
    	    <meta charset="utf-8">
            <title>Essai</title>
            <link rel="stylesheet" href="css/style.css">
            <script type="text/javascript" src="sympa.js"> 
     
    	function f(x)
    {
       var resultat = 5*x - 3;
       return resultat;
       alert(resultat); 
    }	
    </script>
    	</head>
     
    <body >
     
    <script>
             f(5);
    </script>    
     
    </body>
    </html>
    J'obtiens le message, f n'est pas définie.
    J'ai commencé, sans succès, à placer ma fonction dans le fichier script externe puis entre head et head. L'erreur doit être évidente, je ne la trouve pas. Où est-elle*?

    Avec mes remerciements
    Cordialement
    Papy

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    c'est quoi cette syntaxe HTML ?

    A+JYT

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Ton problème vient peut être du fait que ta première balise script contient un attribut src qui va allé chercher la page js en question et en même temps tu déclare a l'intérieur ta function.

    Code html : 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
    19
    20
    21
    22
    23
    24
     
    <html lang="fr">
    	<head>
    	    <meta charset="utf-8">
            <title>Essai</title>
            <link rel="stylesheet" href="css/style.css">
            <script type="text/javascript" src="sympa.js"></script>
    	</head>
     
    <body >
     
    <script>
    function f(x)
    {
       var resultat = 5*x - 3;
       return resultat;
       alert(resultat); 
    }       
             
    f(5);
    </script>    
     
    </body>
    </html>

    Donc j'ai changé l'endroit pour le placé ta function dans la 2èmes partie <script>, j'ai pas testé mais l'idée est là,
    Bonne continuation.

  4. #4
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 722
    Points : 1 607
    Points
    1 607
    Par défaut
    de toute evidence il manque la balise script et pour la balise script qui pointe vers un fichier dans ce cas elle doit etre fermante

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <script type="text/javascript" src="sympa.js"/>

    et aussi l'alerte ne s'affichera jamais car tu fait un return avant l'alerte et le return dans ce car stop la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       var resultat = 5*x - 3;
       alert(resultat); 
       return resultat;
    et enfin mettre l'appel a la fonction en dur dans la partie html sans que le document ai ete entierement chargé c'est pas tres propre et sa peut cree des surprises dans ce cas le mieux serai d'utiliser l'evenement onload pour lancer la fonction

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 678
    Points
    44 678
    Par défaut
    Bonjour,
    de toute evidence il manque la balise script et pour la balise script qui pointe vers un fichier dans ce cas elle doit etre fermante
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <script type="text/javascript" src="sympa.js" />
    tu es vraiment sûr de ton coup là....

  6. #6
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 722
    Points : 1 607
    Points
    1 607
    Par défaut
    j'ai fait une evaluation qui s'est avéré concluante

  7. #7
    Membre du Club

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 67
    Points : 62
    Points
    62
    Billets dans le blog
    1
    Par défaut Ma fonction ne s’exécute pas
    Merci à tous,

    J'ai fermé la balise script.
    J'ai éliminé le return.
    J'ai modifié la fonction*; elle est toujours inconnue.
    Code html : 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
    19
    20
    21
    22
    23
    24
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	    <meta charset="utf-8">
            <title>Essai</title>
            <link rel="stylesheet" href="css/style.css">
            <script type="text/javascript" src="sympa.js"/> 
     
    	function f(x)
    {
        var resultat = 5*x - 3;
        alert(resultat); 
    }	
    </script>
    </head>
     
    <body >
     
    <script>
             f(5);
    </script>    
     
    </body>
    </html>
    où est l'erreur*?
    Cordialement
    Papy

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 678
    Points
    44 678
    Par défaut
    Je te propose de faire une autre "évaluation" avec le code suivant.
    Code html : 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
    19
    20
    21
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Script balise auto fermante or no ?</title>
    <script src="http://code.jquery.com/jquery-latest.js"/>
    <style>
    body{
      color:red;
    }
    </style>
    <script>
    jQuery(function($){
      $('body').prepend('<p>2éme Bonjour du body !</p>');
    });
    </script>
    </head>
    <body>
      <p>Bonjour du body !</p>
    </body>
    </html>
    et tu verras que dans ce cas plus rien ne va même si le fichier est effectivement chargé le code généré/interprété par le navigateur ressemblera à
    Code html : 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
    <head>
    <meta charset="UTF-8">
    <title>Script balise auto fermante or no ?</title>
    <script src="http://code.jquery.com/jquery-latest.js">
    <style>
    body{
      color:red;
    }
    </style>
    <script>
    jQuery(function($){
      $('body').prepend('<p>2éme Bonjour du body !</p>');
    });
    </script>
    </head>
    <body>
    <p>Bonjour du body !</p>
    </body>
    c'est quasiment la même chose sauf que tout ce qui se trouve entre la balise <script> ouvrante et la première balise </script> fermante qui la suit ne sera pas pris en compte, dans l'exemple ci dessus donc le style et l'ajout du P seront out.

  9. #9
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 722
    Points : 1 607
    Points
    1 607
    Par défaut
    oui mais tu n'a pas mis la balise d'ouverture pour le script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script>
    	function f(x)
    {
        var resultat = 5*x - 3;
        alert(resultat); 
    }	
    </script>
    a j'ai ete devancé

  10. #10
    Membre du Club

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 67
    Points : 62
    Points
    62
    Billets dans le blog
    1
    Par défaut Ma fonction ne s’exécute pas
    Merci à vous,

    Je ne veux pas me cacher derrière mon petit ogt*: je suis débutant.
    Cette balise d'ouverture qu'elle est-elle*?
    Où faut-il la placer*?
    Cordialement
    Papy

  11. #11
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 722
    Points : 1 607
    Points
    1 607
    Par défaut
    j'ai regardé le code generé avec chrome et firefox voila ce qu'il me mettent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    ils ferment automatiquement la balise mais en utilisant la balise fermante </script> mais le code n'est pas interprété par contre sa fonctionne si je modifie le script de la meme sorte.

    en gros j'ai tellement l’habitude de faire du copié collé de cette partie que que que

    conclusion il faut mettre la balise fermante</script>

  12. #12
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par melka one Voir le message
    en gros j'ai tellement l’habitude de faire du copié collé de cette partie
    Une bien mauvaise habitude



    Il y a 2 syntaxes pour insérer du script javascript dans une page web :
    - pour un fichier externe :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="chemin/fichier.js"></script>

    - pour un code intégré dans la page HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    // code javascript
    </script>

    Et dans les 2 cas, ces balises <script> se placent dans les balises HTML <head>.

    @Jean Sympa, tu as donc mélangé les 2 syntaxes. Dans ton cas :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function f(x)
    {
       var resultat = 5*x - 3;
       alert(resultat); 
       return resultat;
    }

    Voilà également en détails la signification de return (qui n'est pas obligatoire) :
    https://developer.mozilla.org/fr/doc...uctions/return
    et la fonction alert() :
    https://developer.mozilla.org/fr/doc...A9thodes/alert

  13. #13
    Membre du Club

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 67
    Points : 62
    Points
    62
    Billets dans le blog
    1
    Par défaut Ma fonction ne s’exécute pas
    Merci auteur,

    les explicaions concernant la différence entre les deux syntaxes, au niveau head, sont lumineuses.
    Et, merci pour la doc. Mes fonctions s'exécutent.

    Y a-t-il des différences au niveau body?
    Suffit-il d'utiliser <script> </script> pour isoler du code javascript?
    Y a-t-il d'autres différences?
    Utilisation de <script type="text/javascript">?
    Placer <script type="text/javascript" src="chemin/fichier.js"></script>, avant </body>?
    Ce sont des conseils que j'ai rencontrés.

    Cordialement
    Papy

  14. #14
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 678
    Points
    44 678
    Par défaut
    une bonne lecture en perspective
    FAQ JavaScript

  15. #15
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Une page web peut contenir divers langage (côté client, c'est à dire, toi) :
    - HTML le langage balisé ;
    - la javascript ;
    - les feuilles de style CSS.

    Par défaut le navigateur traite les informations, sauf les balises, comme du texte. Donc pour que le navigateur interprète correctement les langages CSS et javascript il faut le lui dire. C'est ce que font les balises <script> pour le javascript et les balises
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <style type="text/css">
    </style>
    pour les feuilles de style CSS.

    Voici un tutoriel HTML. Il y a tout un chapitre sur le contenu de l'entête d'une page web.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2007, 17h31
  2. [Système] fonction file() renvoit pas tout le fichier
    Par Oprichnik dans le forum Langage
    Réponses: 7
    Dernier message: 02/10/2006, 17h00
  3. Fonction ne marchant pas avec FomShow
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 3
    Dernier message: 02/10/2006, 14h59
  4. Fonction ne retournant pas toujours une valeur
    Par mastochard dans le forum C
    Réponses: 14
    Dernier message: 25/05/2006, 12h13
  5. Open et opener => Ma fonction ne... fonctionne pas...
    Par romulus dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/03/2006, 11h40

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