多说社交评论插件学习《一》

利用多说插件获取单篇文章的评论数:

多说评论数调用

Js部份:
<script type="text/javascript" src="js/jquery-1.8.3.js"></script> // 将jquery载入
 <script type="text/javascript">
    $(function(){
   
                        var uid = "aaa";//多说用户ID,也就是二级域名
                        var aid = "123456";//文章ID,唯一的文章标识。
    var getstr = "http://api.duoshuo.com/threads/counts.jsonp?short_name="+uid+"&threads="+aid+"&callback=?";
       $.getJSON(getstr, function(data) {
                 var comval=''; 
                 $.each(data.response, function(i, item) {
                     comval += item.comments;
                  });
     //alert(comval);
                 $("#ccount").text(comval);//ccount是需要设置的论评数的html元素ID
             });
    
    
      });
         
         </script>
 

html部份:
<span id="ccount"></span>条评论

方法二:转载自神马值得玩http://www.smzdwan.com/news/797.html

先看看这个示例的html,首先我的方法是给要调用条数的位置设定一个类名,比如我用的count 然后再此处写入data-thread-key这个是要通过GET给多说的参数哦,别搞错了!然后再样式中设为隐藏。。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript" src="./Public/js/jquery-1.7.2.min.js"></script> 注意这里用来jquery
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
    .count{
        display: none;定义成隐藏
    }
</style>
</head>
<body>
    <ul>
        <li><a href="javascript:void(0)" class="count">4ff160411318693231000006</a></li>这里放data-thread-key
        <li><a href="javascript:void(0)" class="count">4ff160411318693231000007</a></li>这些事官方文档里的key
        <li><a href="javascript:void(0)" class="count"></a>15254546215</li>你要换成自己的文章key哦。。。
        <li><a href="javascript:void(0)" class="count"></a></li>如果是php模板输出个文章id的变量就欧了
        <li><a href="javascript:void(0)" class="count"></a></li>
    </ul>
</body>
</html>
                  

下面就是js代码了
$(document).ready(function() {
            loadDuoshuoConut("count", "official");传入设定的要变为条数的类名,传入二级域名
        });
   
//类名,二级域名
function loadDuoshuoConut(classname,sld) {
    
    if (classname == "" || sld == "" || classname ==null || sld ==null )return;
    //选择类
    var countObj = $("." + classname);
    if(countObj.length == 0)return;
    
    var Objkey = '';//这个是用来装载所有key拼接的字符串
    var ObjMap = new Array();//这个是用来存放对应key键和值得数组,类似map的数据结构
    countObj.each(function(i) {
        var key = $(this).text();//查找对象的text,然后作为键名
        if(key!=''){
            Objkey += key + ",";//如果text不为空字符串,也就是data-thread-key是存在,就加入查询的字符串中
        }
        else
            key =  'error'+i;//为空也至少给个键名
        }
        ObjMap[key] = new Object();
        ObjMap[key].obj = $(this);
        ObjMap[key].count = 0; //初始化为0条数据   
    });
    //好了使用getJSON查询把,因为是跨域访问,就只能用JSONP。
    $.getJSON("http://api.duoshuo.com/threads/counts.jsonp?short_name=" + sld + "&threads=" + Objkey + "&callback=?", function(data) {
         var vv='';//调试用的变量无关紧要
         //循环遍历,如果键名和返回的数据中的thread_key能对应就赋值条数
        $.each(data.response, function(i, item) {
            if (ObjMap[item.thread_key] != "undefined" && ObjMap[item.thread_key] != null) {
                ObjMap[item.thread_key].count = item.comments;
            }
            vv += item.thread_key + "|" + item.comments + "<>";
        });
        //alert(vv);
        //遍历全部Map的数据,打印条数
        for (i in ObjMap) {
            ObjMap[i].obj.text("(" + ObjMap[i].count + "条)");//注意哦,这里可以自己随意加字了,ObjMap[i].count是数字,其他的随意啦啦啦
        }
        countObj.css("display", "inline-block");//原本是隐藏的,现在可以改为显示了
    });
    delete ObjMap;
}
原文地址:https://www.cnblogs.com/abc8023/p/3862641.html