2016-08-30 23 views
0

评论插件我已经Facebook的评论插件,在我的网站,如果我简单的刷新页面中的所有工作正常,但...的Facebook通过Ajax

  • 每次我通过Ajax加载新的页面插件和闪烁然后消失 (使用FB.XFBML.parse(),如果没有,则不显示任何内容)。

我可以解决,通过除去.fb_hide_iframes类{左:-10000px;} 但iframe中接收一个固定的高度值,即:式=“高度:100像素;” - 所以基本上,这个盒子被切半,就好像我重新加载页面就不会是动态的)

  • 如果我删除.fb_hide_iframes和更大的高度值设置为IFRAME,除了获得大的空白区域,“加载更多评论”框不起作用。

重要提示:.fb_hide_iframes类不会出现,如果我简单的刷新页面 - 所有工作正常

我用尽了一切办法,但没有工作,所以我要问你的帮助...... 有没有其他解决方案,你们可以想到?

回答

0

我就遇到了这个问题,并能够通过包括一个单独的JavaScript文件解决了下列文件:

  1. 目前调用FB.XFBML.parse()对阿贾克斯完成(你的函数似乎已经到位)。
  2. 还包括在同一个文件中的fb js,以及任何document.ready函数之外(见下文)。

(function($) { 
    // This function is what gets called on ajax complete. 
    // Note: ajax complete part is not in this example. 
    $.fn.fb_comments_refresh = function(data) { 
     if (typeof FB != 'undefined') { 
      // Refresh comment box. 
      FB.XFBML.parse(); 
     } 
    }; 
})(jQuery); 
// Needed for fb ajax modal to work repeatedly. 
(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, "script", "facebook-jssdk")); 

这个文件需要在Ajax的请求的页面中调用。