2008-12-07 6 views
1

J'essaye actuellement de lire le texte d'un fichier et de l'ajouter à un élément de ma page html en utilisant le DOM et Javascript. Je ne peux pas obtenir le texte au format bien. J'ai essayé d'utiliser innerHtml mais ne forme pas du tout (pas de saut de ligne).Insertion de fichier dans une page html en utilisant Javascript?

Voici le javascript:

http = new XMLHttpRequest(); 
http.open("GET",FILE,false); 
http.send();  
document.getElementById("tbody").innerHTML = http.responseText 

Comme je l'ai dit le texte est ajouté à l'élément tbody mais n'est pas formaté afin que jamais.


Je l'ai eu à travailler avec ce code (avec l'étiquette avant), mais comme je l'ai dit il fonctionne sur mon PC, mais pas sur le serveur qui ne permet pas.

  http.open("GET",FILE ,false); 
      http.send(); 
      var newtext = document.createTextNode(http.responseText); 
      var para = document.getElementById("tbody"); 
      para.appendChild(newtext); 

Voici tout mon code javascript:

fonction getHTTPObject() { var http = false;

/*@cc_on 
    @if (@_jscript_version >= 5) 
    try 
    { 
     http = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e) 
    { 
     try 
     { 
      http = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch (E) 
     { 
      http = false; 
     } 
    } 
    @else 
    { 
     http = false; 
    } 
@end @*/ 

if (!http && typeof XMLHttpRequest != 'undefined') 
{ 
    try 
    { 
     http = new XMLHttpRequest(); 
    } 
    catch (e) 
    { 
     http = false; 
    } 
} 
return http 

}

function loadData() 
    { 

    http = getHTTPObject(); 

     if (http) 
     { 
      http.open("GET","my file name",false); 
      http.send(); 
      var newtext = document.createTextNode(http.responseText); 
      var para = document.getElementById("tbody"); 
      para.appendChild(newtext); 
     } 
    } 
+0

Vous devrez donner plus de détails pour que les gens puissent vous aider davantage. Quels sont exactement les contenus de la réponse? A quoi ressemble le html que vous démarrez? Quel est l'état du DOM lorsque vous recevez la demande? –

Répondre

1

Vous pourriez avoir la chance envelopper le texte dans une balise <pre>. Qu'y a-t-il dans la réponse? Si c'est XML, vous pouvez utiliser responseXML.

http = new XMLHttpRequest(); 
http.open("GET",FILE,false); 
http.send();  
document.getElementById("tbody").appendChild(http.responseXML); 
0

innerHTML prend (et parse) et la chaîne html, donc ce qui devrait se traduire par un arbre DOM semblable à

(en supposant)

<tbody>{responseText}</tbody> 

Mais sans savoir quel type de contenu est en le texte de la réponse, il est difficile de connaître la cause exacte de votre problème.

1

Tout dépend du type de données dans la réponse. S'il s'agit d'un texte brut, il n'y a aucune raison de le formater. Si vous souhaitez que le html "respecte" l'espace, comme suggéré ci-dessus, placez le texte à l'intérieur d'un tag pré. Si la réponse est html, assurez-vous que #tbody est un div ou quelque chose de similaire.

Vous devriez également envisager d'utiliser quelque chose comme jquery pour votre manipulation DOM et ajax. Cela vous évitera des maux de tête grâce à la compatibilité de plusieurs navigateurs et il est plus agréable d'écrire.

0

La raison pour laquelle cela fonctionne sur votre PC mais pas sur le serveur est probablement le calendrier. AJAX est asynchrone, mais vous le traitez comme s'il était synchrone.

1

Je parie que la réponse est liée à votre déclaration: "Cela fonctionne sur mon PC mais pas sur le serveur". Je suppose que vous rencontrez des problèmes car le fichier n'existe pas sur le serveur ou le chemin d'accès au fichier est différent. avez-vous vérifié que le fichier est envoyé à votre client en essayant directement l'URL du fichier dans le navigateur?