如何处理Facebook javascript SDK事件?
我有一个javascript代码,它应该使用如何处理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
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);
});
});