Disqus + ajax +死了......

时间:2011-12-18 16:46:22

标签: ajax disqus

我试图在我的页面中加载带有ajax的Disqus,我会解释。我有一个页面,我有jqrusel,有不同的图像,每个都有它的评论。

所以,当我点击其中一张图片时,我已经完成了这段代码:

 $.get("/sets/comentarios",{set_id:set_id},function(data){
                $("#componet_comentarios").html(data);             

并且此网址加载:

 var disqus_identifier = 'votar-<?= $id; ?>';
    var disqus_url = 'www.mitrendy.com/votar/<?= $id; ?>';

    // Remove the old script if it's found 
    oldDsq = document.getElementById('MitrendyComentDisqus');
    if(oldDsq) {
        (document.getElementsByTagName('head')[0] ||
        document.getElementsByTagName('body')[0]).removeChild(oldDsq);
    }


    (function() {
        var dsq = document.createElement('script');
        dsq.type = 'text/javascript';
        dsq.async = true;
        dsq.id = "MitrendyComentDisqus-<?= $id; ?>";
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();

但永远不会刷新评论。后来我在disqus的官方页面中看到了:

DISQUS.reset({
  reload: true,
  config: function () {  
    this.page.identifier = "newidentifier";  
    this.page.url = "http://example.com/#!newthread";
  }
});

但是它是一样的,当我试图用ajax加载评论时,永远不要刷新它。

有什么想法吗?我疯了。

感谢任何人!!

1 个答案:

答案 0 :(得分:8)

我有类似的问题,我将我的网站移动到ajax和以前包含在php中的子页面,其中包含disqus js,现在使用ajax(disqus及其脚本的容器)加载但是当没有加载整页时,不评估脚本。所以我将它们移动到全局.js文件并包装在函数中,如下所示:

var disqus_shortname = 'myname';
var disqus_identifier = 'myident';

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

在ajax加载内容后,我调用loadDisqus();并加载了电路板。 在您的示例中,您还应该将identifier作为参数传递,并在调用时定义它,一切都应该正常工作。