0

我想知道如何在页面加载时执行此操作。它与“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 像魅力一样工作,为什么它会是未定义的呢?

那么,这有可能吗?

4

2 回答 2

0

似乎当您使用 FB api 时,它还没有被加载。

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

于 2012-12-11T09:18:50.020 回答
0

请试试这个。

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

这是指Facebook JS SDK FB.logout() 不会终止用户会话

于 2018-09-04T13:12:36.680 回答