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()FB スクリプトをロードするために使用するall.jsことが原因である可能性があります。コールバック関数を追加するか、html のヘッドにスクリプトをロードしてください。

于 2012-12-11T09:18:50.020 に答える