来自chinaz的ajax获取评论代码

 更新时间:2008年05月03日 20:51:13   作者:  
chinaz利用了ajax实现评论的读取操作,下面我们参考chinaz的代码
ajax获取到的字符是类似下面的内容
复制代码 代码如下:

{a:"<div class='pl_list'><div><span class='float_right'><a href=javascript:goodbad(22835,26769,'good',1) title='支持一下'>支持:[ 0 ]</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=javascript:goodbad(22835,26769,'bad',1) title='我反对'>反对:[ 0 ]</a></span><span class='zz'>中国站长站网友:匿名 于 2008-04-25 评论道:</span></div>谁认为投放了Google AdSense的站点就不允许进行推广了?傻子吧</div>",b:1}

然后用下面的ajax进行输出
复制代码 代码如下:


var key='';
var str=new Array();

function createAjaxObj(){
    var httprequest=false
    //document.domain='chinaz.com';
    if (window.XMLHttpRequest){ // if Mozilla, Safari etc
        httprequest=new XMLHttpRequest()
        if (httprequest.overrideMimeType)
            httprequest.overrideMimeType('text/xml');
    }
    else if (window.ActiveXObject){ // if IE
        try 
        {
            httprequest=new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e)
        {
            try
            {
                httprequest=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e){}
        }
    }
    return httprequest;
}

function load_feedback(arcID,pg){

/*
    var url = "http://www.chinaz.com/plus/feedback_ajax.php?action=show&arcID="+arcID+"&pg="+pg;
    var ajax = new oAjax();
    // 是否显示错误
    //ajax.error = true;
    // 请求的页面的编码为'gb2312'或空
    //ajax.encode = 'gb2312';
    // 回调函数
    ajax.callback = function (content) {
        // 处理返回内容
        eval('var obj = ' + content);
        document.getElementById('fedbk').innerHTML=obj.a;
        document.getElementById('fedcount').innerHTML=obj.b;
    };
    ajax.send(url);
*/

    var xmlhttp = createAjaxObj();
    try
    {

        var params="action=show&arcID="+arcID+"&pg="+pg;
        xmlhttp.abort();    

        xmlhttp.open("get","/plus/feedback_ajax.php?"+params,true);

        xmlhttp.setRequestHeader("Content-type", "text/html;charset=gb2312");    

        xmlhttp.setRequestHeader("If-Modified-Since","0");    

        xmlhttp.setRequestHeader("Content-length", params.length);

        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.onreadystatechange=f

        xmlhttp.send(null);    

    }catch(ex){}
    function f()
    {

            if(xmlhttp.readyState!= 4 || xmlhttp.status!=200 )
                return ;
            var b= xmlhttp.responseText;
            var obj = eval("("+b+")");          
            document.getElementById('fedbk').innerHTML=obj.a;
            document.getElementById('fedcount').innerHTML=obj.b;
            document.getElementById('feedcounttop').innerHTML=obj.b;
    }
}


function load_allfeedback(arcID,pg){

    var xmlhttp = createAjaxObj();
    try
    {

        var params="action=showall&arcID="+arcID+"&pg="+pg;
        xmlhttp.abort();    

        xmlhttp.open("get","/plus/feedback_ajax.php?"+params,true);

        xmlhttp.setRequestHeader("Content-type", "text/html;charset=gb2312");    

        xmlhttp.setRequestHeader("If-Modified-Since","0");    

        xmlhttp.setRequestHeader("Content-length", params.length);

        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.onreadystatechange=f

        xmlhttp.send(null);    

    }catch(ex){}
    function f()
    {

            if(xmlhttp.readyState!= 4 || xmlhttp.status!=200 )
                return ;
            var content= xmlhttp.responseText;
            var obj = eval("("+content+")");      
           // eval('var obj = ' + content);    
            document.getElementById('fedbk').innerHTML=obj.a;
            //document.getElementById('fedcount').innerHTML=obj.b;
    }
}

function feed_back(){

    var msg   = trim(document.getElementById('msg').value);
    var arcID = document.getElementById('arcID').value;
    var username = trim(document.getElementById('username').value);
    var pwd   = trim(document.getElementById('pwd').value);
    var checkbox = document.getElementById('notuser');
    if(checkbox.checked)
        var notuser = 1;
    else
        var notuser = 0;    


    var xmlhttp = createAjaxObj();
    try
    {

        params="action=send&arcID="+arcID+"&msg="+msg+"&username="+username
                +"&pwd="+pwd+"&notuser="+notuser;

        xmlhttp.abort();    

        xmlhttp.open("get","/plus/feedback_ajax.php?"+params,true);

        xmlhttp.setRequestHeader("Content-type", "text/html;charset=gb2312");    

        xmlhttp.setRequestHeader("If-Modified-Since","0");    

        xmlhttp.setRequestHeader("Content-length", params.length);

        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.onreadystatechange=f

        xmlhttp.send(null);    

    }catch(ex){}
    function f()
    {    
            if(xmlhttp.readyState!= 4 || xmlhttp.status!=200 )
                return ;
                var arr = xmlhttp.responseText.split("@:");

                if(!arr[1]){
                    alert(xmlhttp.responseText);
                }
                else{    
                    if(arr[0] != 'true')
                        alert(arr[0]);
                    alert(arr[2]);
                    ck_yzimg();    
                    load_feedback(arr[1],1);
                }
    }

}

function goodbad(fid,arcid,actname,pg){

    
    var xmlhttp = createAjaxObj();

    try
    {
        params = "action="+actname+"&fid="+fid+"&arcID="+arcid+"&pg="+pg;

        xmlhttp.abort();    

        xmlhttp.open("get","/plus/feedback_ajax.php?"+params,true);

        xmlhttp.setRequestHeader("Content-type", "text/html;charset=gb2312");    

        xmlhttp.setRequestHeader("If-Modified-Since","0");    

        xmlhttp.setRequestHeader("Content-length", params.length);

        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.onreadystatechange=f

        xmlhttp.send(null);    

    }catch(ex){}
    function f()
    {    
            if(xmlhttp.readyState!= 4 || xmlhttp.status!=200 )
                return ;
                var arr = xmlhttp.responseText.split("@:");

                if(!arr[1])
                    alert(xmlhttp.responseText);
                else{    
                    alert(arr[0]);
                    load_feedback(arr[1],arr[2]);
                }
    }

}

function goodbad2(fid,arcid,actname,pg){

    
    var xmlhttp = createAjaxObj();

    try
    {
        params = "action="+actname+"&fid="+fid+"&arcID="+arcid+"&pg="+pg;

        xmlhttp.abort();    

        xmlhttp.open("get","/plus/feedback_ajax.php?"+params,true);

        xmlhttp.setRequestHeader("Content-type", "text/html;charset=gb2312");    

        xmlhttp.setRequestHeader("If-Modified-Since","0");    

        xmlhttp.setRequestHeader("Content-length", params.length);

        xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.onreadystatechange=f

        xmlhttp.send(null);    

    }catch(ex){}
    function f()
    {    
            if(xmlhttp.readyState!= 4 || xmlhttp.status!=200 )
                return ;
                var arr = xmlhttp.responseText.split("@:");

                if(!arr[1])
                    alert(xmlhttp.responseText);
                else{    
                    alert(arr[0]);
                    load_allfeedback(arr[1],arr[2]);
                }
    }

}

function pg(vl){
    var arcID = document.getElementById('arcID').value;
    load_feedback(arcID,vl);
}
function pg2(arcID,vl){
    //var arcID = document.getElementById('arcID').value;
    load_allfeedback(arcID,vl);
}
function ck_yzimg(){
    //document.all.cknum.value='';
    document.all.msg.value='';
    document.all.username.value='';
    document.all.pwd.value='';
    document.getElementsByName('sb')[0].disabled = false;
    //document.all.img1.onclick();
}

function trim(s) {
 return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );

}

//////
/*
String.prototype.Contains = function(str) {
    return (this.indexOf(str) > -1);
};
var Browser = {
    s : navigator.userAgent.toLowerCase()
};
(function (b) {
    b.IsIE     = b.s.Contains('msie');
    b.IsIE5    = b.s.Contains('msie 5');
    b.IsIE6    = b.s.Contains('msie 6');
    b.IsIE7    = b.s.Contains('msie 7');
    b.IsIE56   = !b.IsIE7 && (b.IsIE6 || b.IsIE5);
    b.IsGecko  = b.s.Contains('gecko');
    b.IsSafari = b.s.Contains('safari');
    b.IsOpera  = b.s.Contains('opera');
    b.IsMac    = b.s.Contains('macintosh');

    b.IsIELike = (b.IsIE || b.IsOpera);
    b.IsGeckoLike = (b.IsGecko || b.IsSafari);
}) (Browser);
function oAjax () {
    this.req = null;
    this.url = '';
    this.content = '';
    this.type = 'text';
    this.encode = '';
    this.asyn = true;
    this.action = 'get';
    this.error = false;
}
oAjax.prototype.init = function () {
    if (window.XMLHttpRequest) {
        this.req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        // isIE = true;
        try {
            this.req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                this.req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {
                this.req = false;
            }
        }
    }
    var self = this;
    if (this.req) {
        this.req.onreadystatechange = function () {self.listener()};
    }
};

oAjax.prototype.listener = function () {
    if (this.req.readyState == 4) {
        if (this.req.status == 200) {
            // right
            try {
                this.callback(Browser.IsIE && this.encode == 'gb2312' ? oAjax.gb2utf8(this.req.responseBody) : (this.type == 'text' ? this.req.responseText : this.req.responseXML));
            }
            catch (e) {
                this.halt('[callback] ' + e.name + ':' + e.message);
            }
        }
        else {
            // error
            this.halt('[callback error] ' + this.req.status);
        }
    }
};

oAjax.prototype.send = function (url) {
    this.init();

    url = this.url = url || this.url || '';
    this.content = !!this.content ? this.content : '';
    this.encode = this.encode ? this.encode.toLowerCase() : '';
    this.asyn = this.asyn == undefined ? true : !!this.asyn;
    this.action = (this.action == undefined || this.action == 'get') ? 'Get' : 'Post';
    this.error = this.error == undefined ? false : !!this.error;

    if (! url && this.error) {
        alert('Ajax请求URL不能为空。');
        return;
    }
    try {
        this.req.open(this.action, url, this.asyn);
    }
    catch (e) {
        this.halt('[open] ' + e.name + ':' + e.message);
        return;
    }
    try {
        this.req.setRequestHeader('Connection', 'close');
        this.req.setRequestHeader('Accept-Encoding', 'gzip, deflate');
        this.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' + (this.encode ? ';charset=' + this.encode : ''));
        if(this.req.overrideMimeType && this.encode) {
            this.req.overrideMimeType('text/xml' + (this.encode ? ';charset=' + this.encode : ''));
        }
        this.req.send(this.content);
    }
    catch (e) {
        this.halt('[open] ' + e.name + ':' + e.message + '\n** 检查是否为跨域访问。');
    }
};

oAjax.prototype.callback = function (content) {
    //alert(content);
};

    // abort
oAjax.prototype.abort = function () {
    this.req.abort();
};

oAjax.prototype.halt = function (description) {
    this.error && alert(description);
};

// gb2312 to utf8
oAjax.gb2utf8 = function (data) {
    var glbEncode = [];
    gb2utf8_data = data;
    execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
    var t = escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
    t = t.split("@");
    var i=0, j = t.length, k;
    while(++i < j) {
        k = t[i].substring(0,4);
        if(!glbEncode[k]) {
            gb2utf8_char = eval("0x" + k);
            execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");
            glbEncode[k] = escape(gb2utf8_char).substring(1, 6);
        }
        t[i] = glbEncode[k] + t[i].substring(4);
    }
    gb2utf8_data = gb2utf8_char = null;
    return unescape(t.join("%"));
}
*/

核心代码
复制代码 代码如下:

           var b= xmlhttp.responseText; 
            var obj = eval("("+b+")");           
            document.getElementById('fedbk').innerHTML=obj.a; 
            document.getElementById('fedcount').innerHTML=obj.b; 
            document.getElementById('feedcounttop').innerHTML=obj.b; 

相关文章

  • 浅析JavaScript中的同名标识符优先级

    浅析JavaScript中的同名标识符优先级

    这篇文章主要介绍了JavaScript中的同名标识符优先级。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • JavaScript同步与异步任务问题详解

    JavaScript同步与异步任务问题详解

    这篇文章主要介绍了JavaScript事件循环同步任务与异步任务,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • js方块躲避游戏代码

    js方块躲避游戏代码

    鼠标控制,空色方块不要让蓝色方块碰到就可以,看能玩多久,是个javascript不错的一个游戏啊,想用js写游戏的朋友可以参考下,看代码应该是国外的人写的
    2008-05-05
  • 让javascript加载速度倍增的方法(解决JS加载速度慢的问题)

    让javascript加载速度倍增的方法(解决JS加载速度慢的问题)

    这篇文章主要介绍了让javascript加载速度倍增的方法,通过document.write输出js解决广告加载速度慢的问题,需要的朋友可以参考下
    2014-12-12
  • 基于bootstrap的文件上传控件bootstrap fileinput

    基于bootstrap的文件上传控件bootstrap fileinput

    这篇文章主要为大家详细介绍了基于bootstrap的文件上传控件bootstrap fileinput,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • js实现上传并压缩图片效果

    js实现上传并压缩图片效果

    这篇文章主要为大家详细介绍了js实现上传并压缩图片的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Storage、cookie的用途和优缺点比较

    Storage、cookie的用途和优缺点比较

    cookie的大小是受限制的,并且每次请求cookie都会被发送,浪费宽带,cookie还需要指定作用域,不可以跨域调用。cookie的作用是与服务器进行交互,作为http规范的一部分存在,而webstorage仅仅是为了本地“存储”数据而生。
    2023-07-07
  • JAVASCRIPT代码编写俄罗斯方块网页版

    JAVASCRIPT代码编写俄罗斯方块网页版

    俄罗斯方块方块是小时候的一个回忆,从最开始的掌上的黑白游戏机,到电视游戏机,到电脑,无不有它的痕迹,今天我们来一起重温它的一种实现方法,也算是整理一下我的思路吧,感兴趣的小伙伴一起学习吧
    2015-11-11
  • JS+html5 canvas实现的简单绘制折线图效果示例

    JS+html5 canvas实现的简单绘制折线图效果示例

    这篇文章主要介绍了JS+html5 canvas实现的简单绘制折线图效果,结合实例形式分析了js结合HTML5 canvas技术实现图形绘制的数值运算与数组遍历等操作技巧,需要的朋友可以参考下
    2017-03-03
  • 微信小程序入门教程

    微信小程序入门教程

    本篇文章主要介绍了微信小程序入门教程,现在分享给大家,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11

最新评论