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 :

utilisation de "\t" avec la fonction innerHTML


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 58
    Points : 30
    Points
    30
    Par défaut utilisation de "\t" avec la fonction innerHTML
    Bonjour a tous!!

    Dans ma fonction je récupère dans un fichier text des informations. Elle sont stockées dans sContent. Je fais une boucle sur cette variable afin de récupérer des marqueurs qui me servent de repère dans mon fichier text, ainsi je découpe mon information et la traite. Basiquement ce sont des chapitre :

    1. Overview,4;
    1.1 Architecture,4;
    1.2 Data Server,4;
    1.3 Event Server,4;
    1.4 Engines,5;


    je récupère les marqueur ',' et ';'.

    Je désire une affichage avec une tabulation. Or, dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sChapter = sContent.slice(0, sContent.search(/./)+7)+"\t"+sContent.slice(sContent.search(/./)+7, sContent.search(/,/));
    \t n'est pas affiché par la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     obj.innerHTML = sOutput;
    Alors que si je fais une , j'observe bien que le \t a été bien pris en compte. C'est donc la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj.innerHTML = sOutput;
    qui gère mal la tabulation. Impossible d'utiliser une quelconque banière ou de faire afficher plusieurs espaces.

    Une suggestion????

    Voici ma fonction complète :


    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
     
    function getContent(dataSource, divID)
    {
     
      if(XMLHttpRequestObject) 
      {
              var obj = document.getElementById(divID);
              XMLHttpRequestObject.open("GET", dataSource);
     
              XMLHttpRequestObject.onreadystatechange = function()
              {
     
                if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
               	    var val=5;
    				var sContent = XMLHttpRequestObject.responseText;
    				var sOutput = "<form name=\"list\" height=\"15\"><select name=chapters onchange=getData(document.list.chapters.value)>";
    				sOutput = sOutput + "<option>Select Chapter</option>";
     
    				do{
    	              var sChapter = sContent.slice(0, sContent.search(/./)+7)+"\t"+sContent.slice(sContent.search(/./)+7, sContent.search(/,/));
    	              var sPage = sContent.slice(sContent.search(/,/) + 1, sContent.search(/;/));
     
    	              sContent = sContent.slice(sContent.search(/;/) + 1);
    				  sOutput = sOutput + "<option value=\"" + sPage +"\">"+ sChapter + "</option>";
    				}
    			  	while(sContent.length != 0)
     
    			  	sOutput = sOutput + "</select></form>";
                    obj.innerHTML = sOutput;
     
                }//if
               alert(sOutput); 
     }//function



    En vous remerciant d'avance

    Cyril

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Faut encode tes espaces...

    en HTML, un espace ca vaut rien... théoriquement tu dois écrire &nbsp;

    Je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div.innerHTML=""; div.appendChild(document.createTextNode(sContent));
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    oki, merci merci!!!

    Et pour les tab? pourquoi \t ne marche pas?

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par cfrelet
    oki, merci merci!!!

    Et pour les tab? pourquoi \t ne marche pas?
    C'est pareil que pour les espaces...

    Le problèmes c'est que quand tu fais du HTML, tu utlises souvent des TABS pour indenter le code... Tu t'imagines si ils étaient visible à l'écran... alors ils valent rien, pour éviter les pb, et faut utiliser une suite de caractère &xxx; pour les émuler... d'ou document.createTextNode qui le fait (normalement)
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    Oki,

    Merci beaucoup !!!

    Bonne soirée

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

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