Facebook身份验证页面不会关闭或刷新父级

时间:2011-10-20 22:47:41

标签: javascript jquery facebook-graph-api facebook

Facebook身份验证效果很好。我可以拉出个人资料图片和用户名。但是,当您单击登录并且出现facebook提示时,我有两个问题(在IE和Chrome中)。

首先,窗口永远不会关闭。它只是一个空白的白页。这实际上发生在我的网络上。 turntable.fm登录以及我能想到的任何fb连接站点。它发生在我工作中,在家里在多台不同的PC上。 fb坏了吗?我不禁想到这与另一个问题有关......

关闭(空白)登录弹出窗口后,我的页面不会刷新。

所以这些都是问题。我尝试订阅auth.login事件并在那里调用reload(),这是文档推荐的内容,但是在登录时没有刷新。这也导致了一个问题,如果你注销它就会自动登录你回来了。这就是为什么我添加下面的代码来检测注销和重新加载。这确实有效。那么如何在弹出窗口关闭时重新加载,甚至更好,让弹出窗口关闭并重新加载我的页面?!

以下所有相关的fb代码(我认为):

        window.fbAsyncInit = function () {
            FB.init({
                appId: '123456', // App ID
                channelURL: 'http://www.mydomain.net/channel.html', // Channel File
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                oauth: true, // enable OAuth 2.0
                xfbml: true  // parse XFBML
            });

            //update guest/username if logged in or not
            FB.getLoginStatus(function (response) {
                if (response.authResponse) {
                    FB.api('/me', function (response) {
                        $('#UserMenu').show();
                        $('#Login').hide();
                        $('#fbpic').html('<img alt="Account Picture" src="https://graph.facebook.com/' + response.username + '/picture" />');
                        $('#AccountName').html(response.name);
                        getVentID(response.id, response.name);
                        $('#Logout').show();
                    });
                } else {
                    //not logged in to facebook
                }
            });

            $('#Logout').live('click', function () {
                FB.logout(function (response) {
                    // user is now logged out
                    window.location.reload();
                });
            });

            //subscribe to login changes
            FB.Event.subscribe('auth.login', function (response) {

            });
        };

        // Load the SDK Asynchronously
        (function (d) {
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
        } (document));

1 个答案:

答案 0 :(得分:0)

这是因为我在Chrome中“安装”了Facebook!卸载,现在无处不在。 SOOO开心!