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 :

bug affichage d'une chaine incomplete a cause de ces deux caractères '<E'


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut bug affichage d'une chaine incomplete a cause de ces deux caractères '<E'
    Bonjour à tous,

    suite à un travail de cryptage, j'ai rencontré le bug suivant une chaine ne s'afiche pas entièrement, et le retour à la ligne est supprimé.

    J'ai trouvé l'origine du bug : une chaîne a retenu mon attention : '3q<EW' (mon code traitant le texte à crypter 5 caractères à la fois)
    voici un petit script que je me suis fais pour essayer de comprendre pourquoi seulement les 2 premiers caractères s'affichent et pas les suivant jusqu'au retour à la ligne, obligé de mettre deux retour pour en avoir un.

    petit script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var txt = '3q<EW', txt2 = '3q< EW';
    document.write("[3q<EW] est une chaine de caracteres a problemes<br />N'est ce pas ?<br />3q<\EW ok ?<br /><br />");
    /* affichage ------------------------------------------------
    [3qN'est ce pas ?
    3q
    -------------------------------------------------------------*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document.write('text = {'+txt+'}<br/><br />');
    document.write(txt.substring(0,3));
    document.write(txt.substring(3)+'<br /><br />');
    document.write('text char by char<br />read:');
    for (i = 0; i < 5; i++)
    	document.write(txt.charAt(i));
    document.write('<br /><br />second text :{'+txt2+'}<br />');
    document.write('dim(txt) = 5<br />dim('+txt+') = '+txt.length+'<br /><br />');
    document.write('dim(txt) = eval string : '+txt.length+'<br />');
    Si vous pouvez me donner de plus amples informations sur ce cas, en espérant qu'il n'y a pas de soucis avec d'autres binômes de caractères.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    le caractère < introduit, en HTML, le début d'une balise donc interprété comme tel avec ton document.write.
    Si tu veux l’afficher de la sorte il te faut le remplacer par l'entité HTML &lt;.

    Néanmoins évite l'utilisation de document.write et préfère lui plutôt element.textContent, par exemple.

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Ok, merci pour ta réponse.
    Désolé pour l'oubli des balises pour l'affichage du code.
    element.textContent me permettrait d'afficher le caractère 'inférieur à' sans problème d'interprétation ?
    c'est pour du cryptage de texte et l'apparition de ce dernier est peu fréquent : si je peux éviter de créer une fonction exprès pour ne plus revoir ce 'bug'
    (fonction qui lirait les caractères et convertirait celui ci avec son code '&lt;' ça fonctionnerait mais ce serait un peu inutile juste pour lui :/)

    Sinon, si il n'y a pas le choix il y aura une fonction de plus !!
    Et ce sera un sujet résolu.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    element.textContent me permettrait d'afficher le caractère 'inférieur à' sans problème d'interprétation ?
    Oui car le texte est interprété comme du texte et non pas parsé.


    Sinon, si il n'y a pas le choix il y aura une fonction de plus !!
    Tu peut également l'afficher dans un élément <textarea> en l'affectant à sa value
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <textarea></textarea>
    <div id="response"></div><br>
    <script>
    const t1 = "[3q<EW] est une chaine de caracteres a problemes<br />N'est ce pas ?<br />3q<\EW ok ?<br /><br />";
    const t2 = "\n[3q<EW] est une chaine de caracteres a problemes\nN'est ce pas ?\n3q<\EW ok ?\n\n";
    document.querySelector("textarea").value = t1 + t2;
    </script>
    Là les retours ligne sont de \n.

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

Discussions similaires

  1. bug affichage d'une image à la place d'une autre
    Par cilies38 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 22/04/2012, 09h37
  2. [TPW] Affichage d'une liste incomplet
    Par Bebertdk dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 05/04/2009, 14h47
  3. affichage d'une chaine de caracteres
    Par roznos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/07/2008, 11h57
  4. Affichage d'une chaine de caractère
    Par Bidos dans le forum ASP
    Réponses: 4
    Dernier message: 26/05/2008, 09h07
  5. [printf] Limiter l'affichage d'une chaine
    Par mikysett dans le forum Bibliothèque standard
    Réponses: 31
    Dernier message: 24/03/2008, 01h51

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