2011-01-13 2 views
7

Я использую FB.getLoginStatus для приложения в Facebook. Это хорошо работает во всех браузерах, включая IE8. Но это не работает для IE7. Мой код:Почему FB.getLoginStatus не работает в IE7?

 FB.getLoginStatus(function(response) {    
      if (response.session) { 
       alert("logout"); 
      } 
      else{ 
       FB.Event.subscribe('auth.login', function(response) { 
        login(); 
       }); 
       alert("login"); 
      } 
     }); 

Кто-нибудь знает почему?

+3

Я установил channelUrl: 'example.com/facebook/' в FB.init, и это сработало! – novellino

+0

+1 channelUrl тоже работал для меня! Вытягивал мои волосы на этом. спасибо –

+0

Просто заметьте, я также вижу ту же проблему в IE8. Ответ, размещенный ниже, разрешает проблему как для IE7, так и для IE8 для меня. – DuckMaestro

ответ

10

Согласно документации на http://developers.facebook.com/docs/reference/javascript/fb.init/, правильное решение, чтобы создать файл на веб-сервере (например channel.html), содержащий только:

<script src="http://connect.facebook.net/en_US/all.js"></script> 

А затем указать абсолютный URL для вашего канала. html в ваших возможностях:

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : 'YOUR APP ID', 
    channelUrl : 'http://example.com/channel.html' // custom channel 
    }); 
</script> 

Для удобства развертывания для вычисления канала channelUrl используется следующее.

var curLoc = window.location; 
curLoc.protocol + "//" + curLoc.hostname + ":" + curLoc.port + "/channel.html" 
+0

работал для меня. благодаря! – Jeff

+0

Недопустимый URL-адрес файла канала приведет к сбою в IE7, в то время как другие браузеры будут работать нормально, включая IE8. –

0

В настоящее время этот API (FB.getLoginStatus) больше не работает в браузерах IE7.

Посмотрите здесь: getLoginStatus not Fired on IE7

Если вы попытаетесь запустить код на следующей странице в IE7 он не работает: http://www.fbrell.com/auth/login-and-logout

кажется исправление «channelUrl» не работает больше и поддержка IE7 для Javascript SDK для Facebook скомпрометирована.

Смежные вопросы