懒惰加载Facebook像按钮 - 为什么不出现

时间:2013-08-20 03:22:30

标签: php html css facebook

我正在为客户创建一个页面,首先 - 我们将10个结果直接加载到页面上。这些结果使得facebook就像按钮一样完美。看看代码,我看到前10个resutls直接将facebook嵌入页面内容放在我期望的位置,我看到facebook就像按钮一样!

现在。我点击页面的底部链接,再加载10个结果。另外10个结果使用与前10个完全相同的代码,但是facebook like按钮并不适用。当我查看代码时,我发现html只是原始代码的复制粘贴,而不是前10个示例中的嵌入页面。

我最好的猜测是,通过将这些按钮延迟加载到页面上,它们不会以相同的方式处理。但我不知道如何修复它......

关于我能在这做什么的任何想法?

2 个答案:

答案 0 :(得分:2)

在执行下一页后尝试调用FB.XFBML.parse(null,FB.Canvas.setSize)

答案 1 :(得分:0)

每次加载内容div时,您都可以调用FB like按钮的脚本部分。

<script>
  function lazyload(){
    var wt = $(window).scrollTop();
    //* top of the window
    var wb = wt + $(window).height();
    //* bottom of the window

    $(".content").each(function(){
      var ot = $(this).offset().top;
      //* top of object (i.e. content div)
      var ob = ot + $(this).height();
      //* bottom of object
      var script = document.createElement( 'script' );
      script.type = 'text/javascript';
      script.src = 'http://connect.facebook.net/en_US/all.js#xfbml=1&appId=15496180XXXX';

      if(!$(this).attr("loaded") && wt<=ob && wb >= ot){
        //$(this).append(script);
        document.body.appendChild(script);
        $(this).attr("loaded",true);
        FB.XFBML.parse();
      }
    }
                  );
  }
  $(document).ready(function(){
    $(window).scroll(lazyload);
    lazyload();
  }
                   );
</script>

正如所指出的那样,但是@alexl每次动态加载like按钮脚本时都需要调用FB.XFBML.parse();