ajax responseText显示为文本,而不是html

时间:2013-12-29 08:57:57

标签: javascript html ajax xmlhttprequest

我有以下问题。

我的表格包含显示文章简单信息的行。如果单击标签,则会插入新的<tr>

显示<tr>信息。但问题是,它会像在编辑器中查看html文档一样显示。

像这样: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-32" /> <title>Untitled Document</title> <link href="css/test2.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="search.js"> .......

不像通常那样“翻译”html。

我使用的代码:

function doDetail(articlenr)
{
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiceXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var partr = document.getElementById("tr"+articlenr);
            var newtr = document.createElement("TR");
            var newtd = document.createElement("TD");
            var content = document.createTextNode(xmlhttp.responseText);
            newtr.setAttribute('id', "det"+articlenr);
            newtd.colSpan = 8;

            newtd.appendChild(content);
            newtr.appendChild(newtd);
            partr.parentNode.insertBefore(newtr,partr.nextSibling);
        }
    }

    xmlhttp.open("GET","showdetail.php?nr="+articlenr,true);
    xmlhttp.send();
}

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

  

ajax responseText显示为文本,而不是html

是的,您明确使用此行执行此操作:

var content = document.createTextNode(xmlhttp.responseText);

...然后将该行附加到newtd

如果希望将文本解析为HTML,则可以将其分配给元素的innerHTML属性。 E.g:

newtd.innerHTML = xmlhttp.responseText;

答案 1 :(得分:0)

Replace newtd.appendChild(content); width newtd.innerHTML = xmlhttp.responseText;