2011-04-25 40 views
2

我想編寫一個小腳本來監視添加在頁面上的disqus註釋,並在添加新註釋時觸發一些通知回調。jquery腳本來監視分區註釋添加?

對我來說,最簡單的方法是定期監控div的內容,並在html內容發生變化時觸發回調。

雖然這會起作用,但我想知道是否有更清潔的方法嗎?


編輯:正如@Pekka建議我實現我的page的onNewComment回調和它精美的作品。這是我將Disqus關聯到我的site的一個主要問題,現在我有一個可行的解決方案。

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

什麼阻止攻擊者將您的onNewComment回調,保存到他自己的函數,並不停地運行它?這似乎違反了GET請求的冪等性。 – raynjamin 2014-04-25 01:10:46

回答

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

};