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 :

Erreur de document.write


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Grenade

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2020
    Messages : 14
    Par défaut Erreur de document.write
    Bonjour à tous,

    Pour faire des calculs, j'ai développé ce code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <script language="JavaScript">
    <!--
     
    var s = "1783254";
    var c = "13121110987654";
    var somme = 0;
     
    let j = 6;
    let x = 0;
    let z = 0;
    let z1=0;
    let y=c.length;
    let y1=s.length;
     
    while (j > 0)
    {
     
    z = y-1;
    z1 = y1-1;
    document.write(c+".substring("+z+","+y+") : "+Number(c.substring(z,y))+"<br>");
    document.write(s+".substring("+z1+","+y1+") : "+Number(s.substring(z1,y1))+"<br>");
    somme = somme + Number(c.substring(z,y))+Number(s.substring(z1,y1));
    j-=1;
    y-=1; y1-=1;
    }
     
    document.write("Somme = " + somme+"<br>");
     
    j = c.length;
    j1 = s.length;
    z = z - 2;
    z1 = z1-2;
     
    //---
     
    while (j > 10 && j1 > 6) {
     
    document.write("j = "+j+"<br>");
    document.write("j1 = "+j1+"<br>");
    document.write(c+".substring("+z+","+y+") : "+Number(c.substring(z,y))+"<br>");
    document.write(s+".substring("+z1+","+y1+") : "+Number(s.substring(z1,y1))+"<br>");
    somme = somme + Number(c.substring(z,y))+Number(s.substring(z1,y1));
     
    j-=1;
    j1-=1;
    z-=2;
    z1-=1;
    y-=2;
    y1-=1;
    }
     
    document.write("Somme* = " + somme+"<br>");
    document.write("Résulat = " + somme % 100 +"<br>");
     
    // -->
    </script>
    Mais une erreur est signalée :

    document.write can be a form of eval.
    pour toutes les lignes document.write.

    1 / Comment corriger cette erreur ?

    2 / Comment différencier entre la déclaration des variables avec let ou var ?

    3 / Si des améliorations sur le code sont possibles, elles seront les bienvenus ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 487
    Par défaut
    Citation Envoyé par amgue Voir le message
    Mais une erreur est signalée :
    pour toutes les lignes document.write.
    1 / Comment corriger cette erreur ?
    => je pense que c'est pour des questions de securite.
    je t'invites a creer un element (div/span ou autre), et de le populer avec un textContent
    developer.mozilla.org/fr/docs/Web/API/Node/appendChild
    developer.mozilla.org/fr/docs/Web/API/Document/createElement & developer.mozilla.org/fr/docs/Web/API/Node/textContent
    Citation Envoyé par amgue Voir le message
    2 / Comment différencier entre la déclaration des variables avec let ou var ?
    => tu peux oublier var... il faudra differencier let & const
    let permet d'ecraser la variable, et assure le scope de la variable
    const assure l'origine de la variable : que la variable ne sera pas re-assignee
    Citation Envoyé par amgue Voir le message
    3 / Si des améliorations sur le code sont possibles, elles seront les bienvenus ?
    => oublier document.write ...

    => comprendre les scopes serait pas mal, je pense
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    De fait, une expression comme
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    c+".substring("+z+","+y+")
    donne l'impression que tu veux évaluer une concaténation; mais ici, c'est inutile puisque tu as juste à demander
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    v.substring(z, y);

    En tout cas, document.write est à remplacer d'urgence par console.log ou une méthode demandant l'affichage dans un élément de la page:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("élément").textContent+=résultat;

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Grenade

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2020
    Messages : 14
    Par défaut
    Bonjour Doksuri, javatwister,

    Merci pour vos réponses.

    J'ai des années de rupture avec le développement web en général

    J'essaye de suivre les liens.

    Pour ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var s = "1783254";
    var c = "13121110987654";
    Le s doit être saisi par l'utilisateur dans un champ input ou textbox.

    Le c est une constante.

Discussions similaires

  1. Erreur document.write distant
    Par Scrat66 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/02/2011, 10h13
  2. pb de " et ' dans document.write
    Par R@IZER dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 09/11/2005, 13h58
  3. plusieurs document.write dans une meme page
    Par Loko dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/07/2005, 17h16
  4. Erreur avec response.write et <TABLE>
    Par angelevil dans le forum ASP
    Réponses: 4
    Dernier message: 11/03/2005, 14h48
  5. document.write sur un target _blank
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 12h32

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