【问题标题】:Facebook JS SDK logout on page loadFacebook JS SDK 在页面加载时注销
【发布时间】:2012-12-11 08:57:43
【问题描述】:

我想知道如何在页面加载时执行此操作。它与“onClick”一起使用,即<a href="#" onClick="FB.logout()">Logout</a>

但是如果我做了这样的事情:

 // INIT (file 1)
 $ ->
    $('body').prepend('<div id="fb-root"></div>')

    $.ajax
        url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
        dataType: 'script'
        cache: true

    window.fbAsyncInit = ->
        FB.init(appId: 'xxxxxxxxxxxx', cookie: true)

       $('#facebook_sign_in').click (e) ->
          e.preventDefault()
          FB.login (response) ->
            window.location = '/auth/facebook/callback' if response.authResponse


    // FILE 2

    <script src="file1.js" type="text/javascript"></script> 
    $(document).ready(function(){
        FB.logout(); <- Nothing happens
    });

调试器说,FB 变量没有定义。但是,如果 onClick 像魅力一样工作,为什么它会是未定义的呢?

那么,有没有可能?

【问题讨论】:

  • 当 FB.logout() 被调用时,FB.init() 似乎还没有被初始化。
  • 有什么办法可以解决吗? :(

标签: javascript jquery facebook authentication facebook-javascript-sdk


【解决方案1】:

你使用FB api的时候好像还没有加载。

使用 $.ajax() 加载 FB all.js 脚本可能是原因,请向其添加回调函数,或将脚本加载到 html 的头部。

【讨论】:

  • 我的脚本其实位于头部。我什至尝试将 FB 设为全局(window.FB = FB 或 window.FB.init),但现在一切都“未定义”
  • 我不是指你的脚本,我是指加载 FB 内容的脚本:connect.facebook.net/en_US/all.js
【解决方案2】:

请试试这个。

 $(document).ready(function(){
            FB.logout(function(response) {
               FB.Auth.setAuthResponse(null, 'unknown');
             });
        });    

这里指的是Facebook JS SDK FB.logout() doesn't terminate user session

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2012-03-06
    • 2014-07-31
    • 2011-05-19
    • 2015-08-30
    • 2011-05-31
    相关资源
    最近更新 更多