5

我试图在我的页面中加载带有 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 加载评论时,永远不要刷新它。

任何的想法 ?我疯了。

感谢任何人!

4

1 回答 1

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();并加载板。在您的示例中,您还应该将标识符作为参数传递并在调用时定义它,一切都应该正常工作。

于 2012-03-26T08:26:16.793 回答