小弟对javascript不是特别了解,网上参考了一段代码,是显示评论的。页面加载时好像也自动加载评论,但如果数据库中没有评论数据,浏览器左下角提示找不到对象,但如果有评论就没有问题,哪位大哥帮小弟看看吧。<body onLoad="showre()">留言段代码/* 显示留言 */
function showre()
{   document.getElementById("list").innerHTML = "<div><img src=images/loading.gif />评论载入中...</div>";
var myurl=top.window.location.href;
var articleid=myurl.split('=');
var url = "show.asp?articleid="+articleid[1];
xmlHttp=GetXmlHttpObject(showlist)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}

解决方案 »

  1.   


    xmlHttp=GetXmlHttpObject(showlist) 
    // showlist哪来的
      

  2.   


    是这样的/* 显示留言 */
    function showre()
    {   document.getElementById("list").innerHTML = "<div><img src=images/loading.gif />评论载入中...</div>";
    var myurl=top.window.location.href;
    var articleid=myurl.split('=');
    var url = "show.asp?articleid="+articleid[1];
    xmlHttp=GetXmlHttpObject(showlist)
    xmlHttp.open("GET", url , true)
    xmlHttp.send(null)
    }
    function showlist()
    {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {   
        document.getElementById("list").innerHTML = ""
    xmlAuthor = xmlHttp.responseXML.getElementsByTagName("Author")
    xmlContent = xmlHttp.responseXML.getElementsByTagName("Content")
    for (i=0;i<xmlContent.length;i++)
    {   var Content = xmlContent[i].firstChild.data;
                var   div   =   document.createElement("DIV");   
                div.id   =   i; 

    if (Content == " ") {
        alert(1)
        div.innerHTML = " "
    }
    else {
        var Author = xmlAuthor[i].firstChild.data;
        var PostTime = xmlAuthor[i].getAttribute('PostTime');
        div.innerHTML = "<span class='purple'><b>"+Author+":</b>&nbsp;&nbsp;<br/><span class='cBlack'>"+Content+"</span>"
    }
                document.getElementById("list").appendChild(div);

    }
    }

    }
      

  3.   

    xmlHttp.responseXML.getElementsByTagName("Author").....  如果后台没有查到数据,就没有构造出对应的XML,你去拿对应的东西肯定出错。在后台构造数据时如果没有查出数据,也要返回对应的XML,加上自己的标记,通过判断标记看是不是查到数据了,有就按你原来的,没有就不去拿,给出提示就行了。
      

  4.   

    小弟都看晕了,用的是mxmax.cn下载的博客系统,全部代码如下<script language="javascript">
    var xmlHttp;
    var addNew;
    function GetXmlHttpObject(handler)

    var objXmlHttp=null
    if (navigator.userAgent.indexOf("MSIE")>=0)

    var strName="Msxml2.XMLHTTP"
    if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
    {
    strName="Microsoft.XMLHTTP"

    try
    {   
    objXmlHttp=new ActiveXObject(strName)
    objXmlHttp.onreadystatechange=handler 
    return objXmlHttp

    catch(e)

    alert("Error. Scripting for ActiveX might be disabled") 
    return 

    }
    else
    {
    objXmlHttp=new XMLHttpRequest()
    objXmlHttp.onload=handler
    objXmlHttp.onerror=handler 
    return objXmlHttp
    }
    }
    function md(){
    eval("pl" + ".style.display=\"none\";")
    }
    /* 显示留言 */
    function showre()
    {   document.getElementById("list").innerHTML = "<div><img src=images/loading.gif />评论载入中...</div>";
    var myurl=top.window.location.href;
    var articleid=myurl.split('=');
    var url = "show.asp?articleid="+articleid[1];
    xmlHttp=GetXmlHttpObject(showlist)
    xmlHttp.open("GET", url , true)
    xmlHttp.send(null)
    }
    function showlist()
    {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {   
        document.getElementById("list").innerHTML = ""
    xmlAuthor = xmlHttp.responseXML.getElementsByTagName("Author")
    xmlContent = xmlHttp.responseXML.getElementsByTagName("Content") for (i=0;i<xmlContent.length;i++)
    {   var Content = xmlContent[i].firstChild.data;
    var   div   =   document.createElement("DIV");   
    div.id   =   i; 

    if (Content == " ") {
    alert(1)
    div.innerHTML = " "
    }
    else {
    var Author = xmlAuthor[i].firstChild.data;
    var PostTime = xmlAuthor[i].getAttribute('PostTime');
    div.innerHTML = "<span class='purple'><b>"+Author+":</b>&nbsp;&nbsp;<br/><span class='cBlack'>"+Content+"</span>"
    }
    document.getElementById("list").appendChild(div);

    } }

    }
    function ltrim(str) 

    var _str = " "+str; 
    var re = /[ ]+([\w|\W]*)/gi; 
    _str.match(re); 
    return RegExp.$1; 
    } function rtrim(str) 

    var _str = str+" "; 
    var re = /([\w|\W]*[^ ])[ ]+/gi; 
    _str.match(re); 
    return RegExp.$1; 
    }
    /* 发送留言 */
    function AddNew() {
        document.getElementById("sendGuest").disabled = true;
    /*    var Author = rtrim(ltrim(escape(document.getElementById("memAuthor").value)));
        var Content = rtrim(ltrim(escape(document.getElementById("memContent").value)));*/
    var Author = escape(rtrim(ltrim(document.getElementById("memAuthor").value)));
        var Content = escape(rtrim(ltrim(document.getElementById("memContent").value)));
    var len=Author.length; if (len>50){
    eval("pl" + ".style.display=\"block\";")
    return false;
    }
    /* var lencon=Content.length;
    if (lencon>500)
    {
    eval("pl" + ".style.display=\"block\";")
    return false;
    }*/
        if (Author == "" || Content == "") {
        eval("pl" + ".style.display=\"block\";")
    document.getElementById("sendGuest").disabled = false;
    return false;
    }
       addNew = GetXmlHttpObject(sendGuest);
        var GuestInfo = "Author="+Author+"&Content="+Content;
    var myurl=top.window.location.href;
    var articleid=myurl.split('=');
        addNew.open("POST","addnew.asp?articleid="+articleid[1],false); 
        addNew.setRequestHeader("Content-Type","application/x-www-form-urlencoded") 
        addNew.send(GuestInfo); 


    function sendGuest() {
        if (addNew.readyState==4 || addNew.readyState=="complete") {
          /* alert(addNew.responseText);*/
       document.getElementById("sendGuest").disabled = false;
       document.getElementById("memAuthor").value = "";
       document.getElementById("memContent").value = "";
       showre();

    }
    function reSet() {
         document.getElementById("memAuthor").value = "";
     document.getElementById("memContent").value = "";
    }

    function hide(){
    if(window.event.keyCode==13)
    window.event.keyCode=0;
    return false;
    }
    var aMenu=1
    onload=function init(){
    var obj_li=document.getElementById("menu").getElementsByTagName("li"),j=obj_li.length;
    for (var i=0;i<j;i++){
    obj_li[i].index=i
    obj_li[i].onmouseover=function(){menu(this,1)}
    obj_li[i].onmouseout=function(){if(this.index==aMenu-1)menu(this,3);else menu(this,2)}
    obj_li[i].onmousedown=function(){
    for (var i=0;i<j;i++) menu(obj_li[i],2);
    aMenu=this.index+1;
    this.onmouseout=null;
    menu(this,1)
    init()
    }
    }
    }
    function menu(obj,state)
    {
    if(state==1){
    obj.className="menuhover";}
    if(state==2){
    obj.className="menuli";}
    if(state==3){
    obj.className="menudown";}
    }
    </script>
      

  5.   

    function showlist(){
      with(xmlHttp){
        if (readyState==4 && status==200){ 
          if(!responseXML){alert("无数据");return;}
          document.getElementById("list").innerHTML = ""
          xmlAuthor = responseXML.getElementsByTagName("Author")
          xmlContent =responseXML.getElementsByTagName("Content") 
        }
      }
      .......................
      .......................
      .......................
    }