0

자바 스크립트 SDK를 사용하는 앱이 있는데 높이는 처음에 FB.Canvas.setSize();까지 결정됩니다.Facebook App iFrame - FB.Canvas.setSize()를 사용 중입니다. 및 FB.Canvas.setAutoGrow();

<div id="fb-root"></div> 
<script> 
       window.fbAsyncInit = function() { 
       FB.init({ 
        appId : '223615011031939', 
        status : true, // check login status 
        cookie : true, // enable cookies to allow the server to access the session 
        xfbml : true, // parse XFBML 
        // channelUrl : 'http://www.yourdomain.com/channel.html', // Custom Channel URL 
        oauth : true //enables OAuth 2.0 
       }); 

       FB.Canvas.setSize(); 

       }; 

       (function() { 
       var e = document.createElement('script'); 
       e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
       e.async = true; 
       document.getElementById('fb-root').appendChild(e); 
       }()); 
      </script> 

을하지만 초기화 후 설정은 iframe 크기보다 큰 높이를 만드는 확장 할 페이지의 콘텐츠가 말 :이 제대로 작동합니다. 나는 그것을 통해 전달 된 다양한 매개 변수와 함께 FB.Canvas.setAutoGrow();을 사용해 봤지만, 그것은 내게 리프레쉬 루프를 줄 것이고 조금씩 그러나 매번 높이를 확장 할 것이다.

제 질문은 콘텐츠가 커지거나 설정된 간격이 아닌 경우에만 iFrame의 크기를 조정하여 setAutoGrow 기능을 적절하게 작동 시키려면 어떻게해야합니까? 설정된 간격에만있을 수있는 경우 콘텐츠가 실제로 커질 때 새로 고침하십시오.

다시 한번 감사드립니다. .

답변

0

이 페이지를 참조하십시오 : 약간의 지연이있을 것

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoGrow/

"당신은 콘텐츠의 크기가 변경됩니다 알고있는 경우이 기능은 유용하지만, 당신이 때 모르는, 그래서 경우 내용의 크기가 언제 바뀌는 지 알고 있으면 setSize를 직접 호출하고 사용자의 CPU주기를 저장해야합니다. "

그래서, 당신은, 그렇지 않으면 setAutoGrow을 당신이 setSize 메소드를 호출 할 수 있습니다 높이를 증가시키고 더 긴 또는 짧은 간격으로

+0

감사를 지정 일부 자바 스크립트 기능이있는 경우. 나는 그것이 무엇인지는 모르지만 높이가 확장되고있는 것처럼 그것을 매 간격으로 반복적으로 호출하고있었습니다. 나는 CSS 레이아웃과 관련이 있다고 생각한다. setAutoGrow는 내용이 실제로 확장 될 때만 시작됩니다. – chuuke