尝试这样做:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR_APP_ID', // App ID
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
然后调用 FB.logout()。FB 必须先初始化。
从文档中:
此代码异步加载 SDK,因此它不会阻止加载页面的其他元素。这对于确保用户和 SEO 机器人的快速页面加载尤为重要。
上面代码中的 URL 是协议相关的。这允许浏览器通过与包含页面相同的协议(HTTP 或 HTTPS)加载 SDK,这将防止“不安全内容”警告。
加载 SDK 后立即运行分配给 window.fbAsyncInit 的函数。您希望在 SDK 加载后运行的任何代码都应放置在此函数中并在调用 FB.init 之后。例如,您可以在此处测试用户的登录状态或订阅您的应用程序感兴趣的任何 Facebook 事件。