2

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

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

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


编辑:正如@Pekka 所建议的,我在我的页面上实现了 onNewComment 回调,它工作得很好。这是我将 Disqus 集成到我的网站时的主要担忧之一,现在我有了一个可行的解决方案。

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

2 回答 2

4

好像有onNewComment回调。请参阅如何在我自己的分析工具中捕获 Disqus 评论活动?

这篇博客文章在记录它方面做得很好。

于 2011-04-25T06:41:16.393 回答
1

Disqus commenting activity can be captured via callbacks, by using:

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

Where you will replace trackComment(); by your own function.

Here is an example that loads Disqus comments dynamically using JavaScript, where you can find the discus_config function that will be fired when a new comment is added.

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);
  })();

};
于 2013-11-13T17:00:07.613 回答