javascript - Facebook auth.statusChange 在 IE 中的对话框后未触发

标签 javascript html facebook callback facebook-javascript-sdk

我在一个使用 FB JS auth SDK 的网站上工作,只在用户单击“使用 Facebook 登录”按钮时让用户登录,而不是在页面加载或其他任何情况下自动让用户登录。因此,我在 FB.init 中将“status”设置为 false。

下面是我的实现:

window.fbAsyncInit = function() {
    FB.init({ 
        appId: '73092430896', 
        status: false, 
        cookie: true, 
        xfbml: true, 
        oauth: true,
    });  

    // listen for and handle auth.statusChange events
    FB.Event.subscribe('auth.statusChange', function(response) {
        console.log('login called.');
        if (response.authResponse) { 
            console.log('repsonse is set.');                    
            if(typeof APPJS.login != 'undefined' && typeof APPJS.login.loginCallback == 'function'){
                console.log('login.callback exists.');
                APPJS.login.loginCallback(response);
            }   
        }
    });            
};

问题是,auth.statusChange 回调没有在 IE(我试过的任何版本)中触发,因此我的用户没有通过我的自定义 JS 函数登录。它在 Chrome、Safari 和 Firefox 中运行良好。它与在任何这些浏览器中登录/注销 Facebook 无关,我已经尝试同时登录和注销 Facebook,但 IE 仍然没有调用回调。

感谢任何帮助。

更新:添加 channel 参数似乎无法解决问题。

最佳答案

请参阅本页的“在页面加载时检查用户状态”部分: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

它说你应该在 FB.init 调用中设置“status: true”。

关于javascript - Facebook auth.statusChange 在 IE 中的对话框后未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492833/

相关文章:

javascript - 为什么我的 reducer 没有使用 Immutable JS 更新我的存储状态?

javascript - 在循环中测试自定义属性

ios - Facebook iOS SDK 3.1 |每次用户尝试登录时都会出现 "You have already authorized YOUR_APP"

android - 从网页发布/分享到 iOS/Android/WP Facebook/Twitter 应用程序

javascript - d3 - 选择/取消选择节点 onclick

javascript - $(gridID).yiiGridView ('getChecked' , columnID) 返回空数组

javascript - 同时拥有 JSX 和普通的 className

javascript - 在一个 <td> 中强制换行

html - 三 Angular 形在html和css中制作两个不同的背景

javascript - Facebook likebox - CSS 问题