我知道这似乎是一个简单的问题,但我发现在ajax页面中没有简单的方法来获取给定的disqus标识符的注释计数。
我查看了他们的 API ,这是一个选项,但我们正在为最终用户构建一个基于ajax cms的网站,强制每个用户看起来有点单调乏味必须创建自己的disqus应用程序API并填写公钥和密钥才能获得评论。此外,加载一个单独的远程JS似乎有点过分,返回一个完整的JSON对象,只是为了获得当前页面注释的数量。
有一个 count.js 脚本here,但没有关于如何动态更新ajax页面的计数的信息。差不多......经过大量搜索后,我发现了一些未记录的方法 DISQUSWIDGETS.getCount()。但是,在为每个标识符调用一次后,这将停止工作。此外,这种方法还需要加载外部JS才能获得评论...
似乎奇怪的#comments数量无法提取更容易。在页面上显示评论后,评论的数量完全可用,但我们当然无法使用JS访问该iframe。任何启示都值得赞赏...答案 0 :(得分:0)
This is the html file which will help you to count the number of comments in a particular node in for any site which has disqus comment.
<!DOCTYPE html>
<html>
<head>
<title>Disqus Comment Counts Example</title>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var disqusPublicKey = "?";
var disqusShortname = "?"; // Replace with your own shortname
var urlArray = [];
$('.count-comments').each(function () {
var url = $(this).attr('data-disqus-url');
urlArray.push('link:' + url);
});
$('#get-counts-button').click(function () {
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/threads/set.jsonp",
data: { api_key: disqusPublicKey, forum : disqusShortname, thread : urlArray },
cache: false,
dataType: 'jsonp',
success: function (result) {
for (var i in result.response) {
var countText = " comments";
var count = result.response[i].posts;
if (count == 1)
countText = " comment";
$('div[data-disqus-url="' + result.response[i].link + '"]').html('<h4>' + count + countText + '</h4>');
}
}
});
});
});
</script>
</head>
<body>
<h1>Comment Counts Example</h1>
<div>
<a href="#">
<h2>Fullscreen BEAM: The first YouTube app for Google Glass comes with public or private sharing</h2>
<div class="count-comments" data-disqus- url="http://www.dev.indiawaterportal.org/questions/can-using-ro-water-result-stomach-problems"></div>
</a>
</div>
<button type="button" id="get-counts-button">Get Comment Counts</button>
</body>