在FacebookJSSDK中使用Jquery
我正在使用jquery在我的页面中实现各种功能,包括显示和隐藏div元素 现在,我在母版页中还有facebook JS SDK,用于检查用户是否已注销facebook并进行graph api调用 问题是有时候,facebook的响应需要一段时间,在这段时间内,用户可以看到jquery在$.ready上隐藏的div元素在FacebookJSSDK中使用Jquery,jquery,facebook,Jquery,Facebook,我正在使用jquery在我的页面中实现各种功能,包括显示和隐藏div元素 现在,我在母版页中还有facebook JS SDK,用于检查用户是否已注销facebook并进行graph api调用 问题是有时候,facebook的响应需要一段时间,在这段时间内,用户可以看到jquery在$.ready上隐藏的div元素 有没有更好的方法?我认为graph api调用在完成时有一个回调函数。从那里调用jquery代码,而不是$.ready。。所以我终于解决了这个问题。您应该异步加载FB Javasc
有没有更好的方法?我认为graph api调用在完成时有一个回调函数。从那里调用jquery代码,而不是$.ready。。所以我终于解决了这个问题。您应该异步加载FB Javascript SDK,如下所示
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
window.fbAsyninit=函数(){
init({appId:'你的appId',状态:true,cookie:true,
xfbml:true});
};
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());
有关更多详情,请参阅
我注意到,所有包含FB对象的方法,比如FB.api等,都应该与FB.init在同一个闭包中,否则FB对象是未定义的 如果您想要更干净的方法,请尝试以下方法:
window.fbAsyncInit = function() {
FB.init({xfbml: true});
};
$(function() {
$.getScript({url: document.location.protocol +
'//connect.facebook.net/en_US/all.js'});
}
将此代码内联插入或插入单独的Javascript文件中
注:
- 本例未定义appID、cookie或状态。您可以将它们添加到FBAsyninit
- 使用JQuery 1.8.2进行测试
- 我发现#fb rootdiv是不必要的