2011-01-13 12 views
7

Używam aplikacji FB.getLoginStatus dla aplikacji na Facebooku. Działa to dobrze we wszystkich przeglądarkach, w tym w IE8. Ale to nie działa w IE7. Mój kod to:Dlaczego FB.getLoginStatus nie działa w IE7?

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

Czy ktoś wie dlaczego?

+3

Ustawiam channelUrl: 'example.com/facebook/' w FB.init i zadziałało! – novellino

+0

+1 channelUrl pracował także dla mnie! Wyciągałam włosy z tego. dzięki –

+0

Po prostu uwaga, widzę ten sam problem w IE8. Poniższa odpowiedź rozwiązuje problem w IE7 i IE8 dla mnie. – DuckMaestro

Odpowiedz

10

Zgodnie z dokumentacją w http://developers.facebook.com/docs/reference/javascript/fb.init/, właściwe rozwiązaniem jest utworzenie pliku na serwerze WWW (na przykład channel.html) zawierające tylko:

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

A następnie określenie bezwzględny adres URL do swojego kanału. html w opcjach init:

<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> 

Dla ułatwienia wdrażania używam poniższych do obliczenia mojego channelUrl.

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

pracował dla mnie. dzięki! – Jeff

+0

Nieprawidłowy URL pliku kanału spowoduje, że to się nie powiedzie w IE7, podczas gdy inne przeglądarki będą nadal działały poprawnie, w tym IE8. –

0

Obecnie ten interfejs API (FB.getLoginStatus) nie działa już w przeglądarkach IE7.

Spójrz tutaj: getLoginStatus not Fired on IE7

Jeśli próbujesz uruchomić kod na następnej stronie na IE7 To nie działa: http://www.fbrell.com/auth/login-and-logout

Wydaje się, że „channelUrl” fix nie działa już i Wsparcie dla IE7 dla pakietu Facebook Javascript SDK zostało naruszone.