2010-07-13 5 views
0

iframe에 facebook 연결 응용 프로그램을 만들었습니다. apps.facebook.com/app-name에서 사용하고 있습니다.새로 고침 후 FB.Canvas.setSize가 실패합니다. (facebook iframe 응용 프로그램)

새로 고침 후 setSize() 메서드가 실패하는 것 같습니다. 때로는 작동하지 않는 경우도 있습니다 ... (최신 Firefox 및 IE에서) 해결책이 있습니까? 대신 이전 API를 사용 하시겠습니까?

테스트 케이스 :

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <title>test</title> 
    <meta name="description" content="test"> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.init({appId: 'XXXXXXXXX', status: true, cookie: true, xfbml: true}); 
     FB.Canvas.setSize({ width:760,height:3000 }); 
    }; 

    (function() { 
     var e = document.createElement('script'); 
     e.type = 'text/javascript'; 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
    </script> 
    <div style="height:2000px;background:blue;width:760px;"> 
    </div> 
</body> 
</html> 

답변

0

어떤 이유로 window.name 내 경우에는 FB.setAutoSize 실 거예요 작업, http://bugs.developers.facebook.net/show_bug.cgi?id=19720을 설정하기위한 자사의 어떻게 든 연결이 jQuery를하는 경우 $ .DATA

window.fbAsyncInit=function(){ 

     FB.Canvas.setSize = function(b) { 
      if (typeof b!="object") 
       b={}; 
      b=b||{}; 
      if (b.width==null||b.height==null) 
       b=FB.copy(b,FB.Canvas._computeContentSize()); 
      b=FB.copy(b,{frame:'iframe_canvas'}); 
      if (FB.Canvas._lastSize[b.frame]) { 
       var a=FB.Canvas._lastSize[b.frame].height 

       if(FB.Canvas._lastSize[b.frame].width==b.width&&(b.height<=a&&      (Math.abs(a-b.height)<=16))) 
        return false; 
      } 
      FB.Canvas._lastSize[b.frame]=b;FB.Arbiter.inform('setSize',b); 
      return true; 
     } 

     FB.init({ 
      appId:"<?php echo FB_APP_ID; ?>", 
      status:true, 
      cookie:true, 
      xfbml:true 
     }); 

     FB.Canvas.setAutoResize() 
    }; 
관련 문제