2008-12-07 61 views
1

我目前正在尝试从文件中读取文本,并将其附加到使用DOM和Javascript的HTML页面中的元素。我不能让文本格式化。我尝试过使用innerHtml,但根本没有格式化(没有换行符)。使用Javascript插入文件到html页面?

这里是JavaScript:

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

就像我说的文本被添加到tbody元素,但其格式都没有。


我得到了它与此代码(与预先标记)的工作,但就像我说的它的作品在我的电脑但不这不利于在服务器上。

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

这是我的所有JavaScript代码:

功能getHTTPObject() { 变种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

您需要提供更多详细信息供人进一步帮助。答案的内容究竟是什么?你开始使用的html是什么样的?当您收到请求时,DOM的状态是什么? – 2008-12-08 00:04:38

回答

1

您可能有运气包装在一个<pre>标签的文本。什么在回应?如果它是XML,则可能需要使用responseXML

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

innerHTML的需要(和解析)和HTML字符串,那么应该怎么结果是DOM树类似

(假设)

<tbody>{responseText}</tbody> 

但不知道是什么类型的内容回复文本很难知道问题的确切原因。

1

这一切都取决于响应中的数据类型。如果是纯文本,则没有理由将其格式化。如果您希望html能够“尊重”空白符,如上所示,请将文本放在pre标签中。

如果响应是html,请确保#tbody是div或类似的东西。

您还应该考虑使用类似jquery的东西来处理DOM操作和ajax。它可以为您节省头痛,提供跨浏览器兼容性,写起来更好。

0

它可以在你的电脑上工作,但不在服务器上的原因可能是时机。 AJAX是异步的,但你认为它是同步的。

1

我敢打赌,答案与你的陈述有关:“它适用于我的电脑,但不适用于服务器”。我猜你有问题,因为该文件不存在于服务器上,或文件路径不同。您是否已通过直接在浏览器中尝试访问该文件的URL来检查该文件是否已发送给客户端?