2011-01-13 3 views
7

Facebook에서 응용 프로그램에 FB.getLoginStatus을 사용하고 있습니다. 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

FB.init에 channelUrl : 'example.com/facebook/'을 설정했는데 성공했습니다! – 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"수정이 더 이상 작동되지 않고 보인다 Facebook Javascript SDK에 대한 IE7 지원이 손상되었습니다.

관련 문제