5

非同期読み込みの Facebook ログイン ボタンを実装しようとしていますが、ボタンは 45 秒後に消え (Google Chrome のみ)、エラー コンソールに次のエラー メッセージが記録されます:「FB:login_button は 45 秒でサイズ変更に失敗しました」。この問題を解決するにはどうすればよいですか?

エラー コンソールに記録されるエラーは次のとおりです。

Uncaught TypeError: Cannot read property 'style' of undefined connect.facebook.net.js:123
    v connect.facebook.net.js:123
    o.extend.constructor.ha connect.facebook.net.js:123
    g.inform connect.facebook.net.js:40
    (anonymous function) connect.facebook.net.js:123
    ka connect.facebook.net.js:67
    h.setWrapper.j connect.facebook.net.js:62
    r.register.init.s connect.facebook.net.js:66
    h.setWrapper.j connect.facebook.net.js:62
fb:login_button failed to resize in 45s 

HTMLは次のとおりです。

         <div class="fb-login-button" data-show-faces="false" size="xlarge" data-width="300" data-max-rows="1"></div>

Javascript は次のとおりです。

ADS.addEvent(window, "load", function(){


if(!ADS.$('fb_root')){

    var div = document.createElement('div');
    div.id = "fb-root";
    document.body.appendChild(div);
    var script = document.createElement("script");
    script.src = "dom/connect.facebook.net.js";
    var script2 = document.createElement("script");
    var head = document.getElementsByTagName("head")[0]; 
    head.appendChild(script);


    window.fbAsyncInit = function () {

        FB.init({
        appId: "HIDDEN",
        channelUrl: "http://mywebsite.com/channel.php",
        status: true,
        cookie: true,
        xfbml: true
        });


    // Gets status when the user first lands
    // on site
    FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {

        //window.location="http://mywebsite.com";

      } else if (response.status === 'not_authorized') {

          // Do nothing, let the user view the welcome page
          //FB.login();

      } else {
          // this causes a login dialog to
          // pop up automagically once the user
          // lands on the site and is not logged in
          // or authorized
          //FB.login();

      }
     });

     function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                // connected
                // using event subscribe to send user to right page, instead of this
                // which does not redirect the user once the login is complete
                //window.location="http://mywebsite.com/home.php?show=follow";
            } else {
                // cancelled
                //alert(response.authResponse);
            }
        });
    }
    FB.Event.subscribe("auth.login", function () { 
            // Redirect's the user once the login is complete
            window.location="http://mywebsite.com";
        })

    }   


}
});
4

0 に答える 0