6

您可能知道 Facebook Like 按钮的加载速度非常慢。

我试图弄清楚如何检测按钮何时完成加载并添加到网站。

原因是我显示加载动画,然后隐藏它并显示按钮,但我想在完成加载后显示按钮。

这可以做到吗?

提前谢谢大家!

4

3 回答 3

22

可以订阅xfbml.render 事件以在渲染完成时得到通知,该事件在每个页面解析中只触发一次(不仅适用于 xfbml,也适用于新的 html5 技巧)。如果xfbml : true.

window.fbAsyncInit = function() {
  FB.init({
    ...
    xfbml : true
  });

  FB.Event.subscribe('xfbml.render', function(response) {
      alert('OMG... All Facebook sociaal plugins on page rendereed.... finally!');
  });
};

// And load the SDK Asynchronously here
于 2012-07-30T03:14:25.357 回答
1

我很确定 facebook Like 按钮包含在 iFrame 中。如果是,您可以找到一些东西来引用该 iFrame 并使用 ->

$('iframe[class/id/name=whatever]').load(function(){ 
  //This element is loaded 
});

编辑

根据您的具体需求,我们可以挂钩到我评论中提到的任何属性,我只是选择frameborder="0"挂钩。

$('iframe[frameborder=0]').load(function(){
  alert("loaded.");
}); 
于 2012-06-29T13:55:07.600 回答
1

如果您要动态添加 Facebook 小部件并因此手动调用FB.XFBML.parse,那么您可以简单地指定一个在渲染完成时调用的回调函数。

于 2012-08-17T19:39:57.610 回答