用于监控disqus注释的jquery脚本添加?

时间:2011-04-25 06:20:39

标签: jquery disqus

我想编写一个小脚本来监控页面上添加的disqus注释,并在添加新注释时触发一些通知回调。

对我来说,最简单的方法是定期监控 #dsq-comments div的内容,并在其html内容发生变化时触发回调。

虽然这会起作用,但我想知道是否有更清洁的方法吗?。


编辑:正如@Pekka所建议的那样,我在我的page上实现了onNewComment回调,它运行得非常好。这是我将Disqus与我的site整合的主要问题之一,现在我有一个可行的解决方案。

function disqus_config() {
  this.callbacks.onNewComment = [function() {
       $.get("/notifications/newcomment?...", function(data) {
       });
  }];
}

2 个答案:

答案 0 :(得分:4)

似乎有一个onNewComment回调。见How can I capture Disqus commenting activity in my own analytics tool?

This blog post在记录它方面做得很好。

答案 1 :(得分:1)

Disqus评论活动可以通过回调来捕获,使用:

function disqus_config() {
  this.callbacks.onNewComment = [function() { trackComment(); }];
}

您将用自己的函数替换 trackComment();

这是一个使用JavaScript动态加载Disqus评论的示例,您可以在其中找到添加新评论时将触发的 discus_config 函数。

var loadDisqus = function() {
  window.disqus_identifier = 'your thread id';
  window.disqus_shortname = 'disqus_shortname';
  window.disqus_url = 'http://your_domain.com/path';
  window.disqus_title ='page title';
  window.disqus_config = function() {
    this.callbacks.onNewComment = [function() { myFunction() }];
  };

  (function() {
    var dsq = document.createElement('script');
    dsq.type = 'text/javascript';
    dsq.async = true;
    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
    (document.getElementsByTagName('head')[0] ||
      document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();

};