如何处理Facebook javascript SDK事件?

如何处理Facebook javascript SDK事件?,javascript,jquery,facebook,Javascript,Jquery,Facebook,我有一个javascript代码,它应该使用FacebookAPI执行一些函数 根据文档,我将包括SDK,如下所示。此代码包含在web应用程序所有页面的模板中。(在我的例子中,模板是添加到所有页面中的内容…) window.fbAsyninit=function(){ FB.init({ appId:'xxx', 自动假肢:对, xfbml:是的, 版本:“v2.10” }); jQuery('.FacebookLoadingFlag').trigger('facebook:init'); FB

我有一个javascript代码,它应该使用
FacebookAPI
执行一些函数

根据文档,我将包括SDK,如下所示。此代码包含在web应用程序所有页面的模板中。(在我的例子中,模板是添加到所有页面中的内容…)

window.fbAsyninit=function(){
FB.init({
appId:'xxx',
自动假肢:对,
xfbml:是的,
版本:“v2.10”
});
jQuery('.FacebookLoadingFlag').trigger('facebook:init');
FB.AppEvents.logPageView();
};
现在,每当我需要调用Facebook函数时,我都会在SDK初始化后尝试执行它,如下所示:

window.onload=function(){
$(“.FacebookLoadingFlag”).bind(“facebook:init”,function(){
//代码在这里
});
}
此实现无法正常工作,因为有时SDK已初始化,而整个页面尚未加载,因此事件
facebook:init
会在获取事件处理程序之前触发。因此,代码不会执行

如果删除
window.onload
,有时会出现错误,说找不到jQuery。这意味着jQuery尚未加载

在这两种情况下,代码通常都不会执行


是否有人知道何时执行此代码,并确保始终执行此代码?我是Javascript新手,不知道如何处理事件。

我认为您应该遵循本教程,这是特定于jQuery的:

在本教程中:

在本教程中,您将学习如何合并Facebook 将JavaScript SDK导入基于jQuery的web应用程序。jQuery和 javascriptsdk为延迟代码提供了自己的解决方案 直到库加载完毕,本教程将提供帮助 您可以将两者结合起来,并确保在调用之前两者都可以使用 SDK

您遵循的教程是通用教程

根据我上面链接的jQuery特定指南,您的代码应该如下所示:

<html>
<head>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <title>jQuery Example</title>
  <script>
    $(document).ready(function() {
      $.ajaxSetup({ cache: true });
      $.getScript('//connect.facebook.net/en_US/sdk.js', function(){
        FB.init({
          appId: '{your-app-id}',
          version: 'v2.7' // or v2.1, v2.2, v2.3, ...
        });
        // After initialization code here
        $('#loginbutton,#feedbutton').removeAttr('disabled');
        FB.getLoginStatus(updateStatusCallback);
      });
    });
  </script>
</head>

jQuery示例
$(文档).ready(函数(){
$.ajaxSetup({cache:true});
$.getScript('//connect.facebook.net/en_US/sdk.js',function(){
FB.init({
appId:“{your app id}”,
版本:'v2.7'//或v2.1、v2.2、v2.3。。。
});
//在这里初始化代码之后
$('loginbutton,'feedbutton')。removeAttr('disabled');
FB.getLoginStatus(updateStatusCallback);
});
});