-1

JS SDK を IE7 で実行しようとしています。私はいくつかのコード例を試しましたが、それらはすべてChrome、FF、IE8でも正常に動作していますが、IE7はこれらすべての例で getLoginStatus イベントを発生させません。チャンネルURLが設定されました。ドメイン設定は正しく、サンドボックスはオフです。

fbrell でも getLoginStatus が機能していないようです。

http://www.fbrell.com/auth/login-and-logout

このサンプルは、IE7 / XP (VMWare Player) またはブラウザ スタックでは機能しません。fbrell では、ステータス (ページのトップ) が「ステータス: 待機中」のままです。

誰かがこの問題を確認できますか (2013 年 10 月 30 日)?

4

1 に答える 1

0

この問題を確認できます。

console.log に何が書き込まれるかを確認するコードを追加すると、IE7 で次のような結果が得られました。

Xdm.swf: connect%3A%20http%253A%252F%252Fmysub.domain.com%252Ff2e554600043906
Xdm.swf: init(channel%20f2e554600043906%2C%20callback%20FB.__globalCallbacks.f3d029e404a5be4)
Xdm.swf: FB.__globalCallbacks.f1628eb66d1241

IE7 は FB.getLoginStatus コールバック関数内から何も書き込みません。他のブラウザはそうです。

私の質問は: IE7 の Facebook Connect Javascript SDK サポートは無効になっていますか?

ここに私のjavascriptコード、jQuery(1.8.3)が含まれています:

//Added this code to enable use of console.log for IE7
var console = {
    panel: $(parent.document.body).append('<div>'),
    log: function(m){
        this.panel.prepend('<div>'+m+'</div>');
    }       
};
window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
        appId      : 'XXXXXXXXXX',   // App ID from the app dashboard
        status     : true,  // Check Facebook Login status
        xfbml      : true,  // Look for social plugins on the page
        channelUrl : "//mysub.domain.com/some/sub/folders/channel.html"
    });


    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            var uid = response.authResponse.userID;
            var accessToken = response.authResponse.accessToken;
            console.log("connected");
        } else if (response.status === 'not_authorized') {
            console.log("not authorized");
        } else {
            console.log("not logged in to Facebook");
        }
    }, true);

};

// Load the SDK asynchronously
(function(){
    if (document.getElementById('facebook-jssdk')) {return;}
    var firstScriptElement = document.getElementsByTagName('script')[0];
    var facebookJS = document.createElement('script'); 
    facebookJS.id = 'facebook-jssdk';
    facebookJS.src = '//connect.facebook.net/en_US/all.js';
    firstScriptElement.parentNode.insertBefore(facebookJS, firstScriptElement);
}());
于 2013-11-22T10:44:58.150 に答える