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 :

Comment fonctionne l'ardoise Javascript


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 186
    Par défaut Comment fonctionne l'ardoise Javascript
    Bonjour,

    Comment fonctionne le complément de Firefox nommé " l'ardoise javascript" ?

    Car il affiche des messages d'erreur assez abscons sans donner les numeros de ligne où se situent les erreurs de syntaxe.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    si je saisie dans l'ardoise ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var i = 15;
    var total = i * b;
    console.log( total);
    l’affichage de l'erreur sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /*
    Exception: b is not defined
    @Scratchpad:2
    */
    difficile de dire que cela est abscons, la variable b est non définie à la ligne 2

    Ardoise JavaScript.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 186
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    difficile de dire que cela est abscons, la variable b est non définie à la ligne 2
    Bonjour,

    En entrant dans l'ardoise un exemple basique de code JS suivant (tout à fait conforme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type='text/javascript' language="javascript">
    var chaine01="bonjour chers lecteurs";
    var chaine02="";
    chaine02=chaine01.substring(8,13);
    document.write(chaine01+"<br>");
     document.write(chaine02);  
    </script>
    La fonction Examiner de l'Ardoise me renvoie le message suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /*
    Exception: SyntaxError: expected expression, got '<'
    @Scratchpad/1:1
    Sinon en supprimant les balises <script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var chaine01="bonjour chers lecteurs";
    var chaine02="";
    chaine02=chaine01.substring(8,13);
    document.write(chaine01+"<br>");
     document.write(chaine02);
    j'ai cet autre message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception: InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable
    @Scratchpad/3:13:0
    Je ne comprends toujours pas la signification des messages d'erreurs renvoyés !

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    <script> est du HTML, ça n'a rien à faire dans une console JavaScript.

    et document.write() écrit sur un document en état ouvert. Une fois la page chargée, le document est fermé et document.write n'est plus utilisable. Je te conseille d'ailleurs de ne plus jamais utiliser cette fonction et de toujours préférer les méthodes de manipulation du DOM, voir : http://blog.developpez.com/web/p1065..._en_javascript

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 186
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    <script>
    Je te conseille d'ailleurs de ne plus jamais utiliser cette fonction
    Le problème c'est que parmi les dizaines de bouquins parus et destinés à initier les débutants en javascript, la première méthode qu'ils donnent dans les exemples ....c'est l'affichage sur la page avec write().
    Difficile ensuite de dire, on s'est trompé, il ne faut plus utiliser write().

    C'est un peu comme les frames en HTML; tout le monde trouvait ça génial mais aujoursd'hui c'est banni.

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Des bouquins vieux de plus de dix ans j'imagine. Le Web n'a que 25 ans, il a pourtant bien changé en si peu de temps. Pour s'assurer de suivre les bonnes pratiques, pas le choix, il faut une veille technique constante. J'ai moi-même publié un bouquin technique il y a 18 mois et je voudrais bien pouvoir actualiser certaines sections...

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Encore une fois, il s'agit là d'une confusion commune.

    L'ardoise JavaScript, bien que très proche de l'implémentation dans un navigateur, est légèrement différente.
    Par exemple un navigateur attend une description HTML pour construire un DOM. Dans ce DOM s'il y a un élément de type script il appelle l'interprète JavaScript pour exécuter le code JS.

    L'ardoise, elle, a déjà un DOM défini. Elle attend donc du code JavaScript et pas du HTML.
    De plus contrairement au chargement d'une description HTML le DOM est fermé.

    Plus précisément lorsque le moteur HTML du navigateur interprète la description HTML, il crée un objet DOM Document qui est ouvert. Tant que l'interprétation de la description HTML n'est pas finie, le document reste ouvert. Si à ce moment-là, il rencontre une balise script, le code JS est interprété DOM ouvert.
    Cette caractéristique permet d'exécuter du code JavaScript avant la fermeture. C’est a dire pendant l'interprétation de la description HTML. (c'est un résidu de la préhistoire qui ne devrait plus être utilisé, mais qui est maintenu, car la pub par exemple, en fait un usage intensif)
    Il est ensuite fermé. À partir de là, le code JavaScript s'exécute DOM fermé.

    Alors qu'avec l'ardoise le DOM est créé et fermé. Ensuite seulement le code JS est interprété.

    A+JYT

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 15/06/2015, 15h48
  2. Comment cet effet en javascript fonctionne-t-il ?
    Par Emmanuel Lecoester dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/11/2011, 21h58
  3. comment fonctionne une interface graphique???
    Par elekis dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 27/10/2004, 23h10
  4. Comment fonctionne le ClassExplorer ?
    Par borisd dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/09/2004, 17h44
  5. Comment fonctionne le CVS ?
    Par mathieu dans le forum CVS
    Réponses: 6
    Dernier message: 23/03/2004, 11h26

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