首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Disqus + ajax +已死...

Disqus + ajax +已死...
EN

Stack Overflow用户
提问于 2011-12-19 00:46:22
回答 1查看 2.5K关注 0票数 5

我已经尝试在我的页面中使用ajax加载Disqus,我会解释的。我在它里面有一个页面,我有jqrusel,有不同的图像,每个都有自己的评论。

因此,当我单击其中一个图像时,我已经完成了以下代码:

代码语言:javascript
复制
 $.get("/sets/comentarios",{set_id:set_id},function(data){
                $("#componet_comentarios").html(data);             

这个url加载:

代码语言:javascript
复制
 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的官方页面上看到:

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

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

有什么想法吗?我被它迷住了。

感谢所有人!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 16:26:17

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8553190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档