最近困饶了很久的一个问题.
在页面中,我们使用 ActiveXObject("microsoft.xmldom") 解析从服务器取回的xml字符串,并使用javascript解释成DHtml,用于显示为表格形式.但在处理<td></td>中间的内容时,全部显示成一行. 之前,<td></td>中间的内容 是由HTML控件textarea 来保存的,里面应该有 回车键(ASCII=13)和换行键盘(ASCII=10).
objNodeList = objXmlDoc.documentElement.selectNodes("//Row");
strHtml += "<TBODY>";
for(var Item_i = 0; Item_i < objNodeList.length; Item_i++)
{
var objItem = objNodeList.item(Item_i);
strHtml += "<TR>";
for(var Item_j=0; Item_j < ayOutputColName.行数; Item_j++)
{
var strFieldName = ayOutputColName[Item_j];
var strFieldValue = "";
if(objItem.selectSingleNode(strFieldName) != null)
strFieldValue = objItem.selectSingleNode(strFieldName).text;
else
strFieldValue = ""
这里:strFieldValue 中,没有Ascii(13) ,只有Ascii(10) .可能是通过objItem.selectSingleNode(strFieldName).text;取的时候,把Ascii(13) 忽略了.所以我们要加上 替换的代码,如下
//替换 回车.bxf.2007-08-30
while(strFieldValue.indexOf(String.fromCharCode(10))>=0)
strFieldValue = strFieldValue.replace(String.fromCharCode(10), "<BR>");
strHtml += "<TD noWrap >"+strFieldValue+"</TD>";
}
strHtml += "</TR>";
}
strHtml += "</TABLE>";