我想编写一个小脚本来监控页面上添加的disqus注释,并在添加新注释时触发一些通知回调。
对我来说,最简单的方法是定期监控 #dsq-comments div的内容,并在其html内容发生变化时触发回调。
虽然这会起作用,但我想知道是否有更清洁的方法吗?。
编辑:正如@Pekka所建议的那样,我在我的page上实现了onNewComment回调,它运行得非常好。这是我将Disqus与我的site整合的主要问题之一,现在我有一个可行的解决方案。
function disqus_config() {
this.callbacks.onNewComment = [function() {
$.get("/notifications/newcomment?...", function(data) {
});
}];
}
答案 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);
})();
};