2013-09-16 4 views
0

이 비동기 코드는 헤더에 간다 표시 방지하고 버튼 같은 FB 표시 할 수 있습니다 :FB는 FB 로그인 버튼을

<script type="text/javascript">(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.async=true; js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=XXXXXXXXXXXXX"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

이 코드는 Google 웹 로그 분석과 함께합니다 (FB 버튼처럼 표시되는 위치 이동을 페이지 하단에 위치 추적 코드)

<div id="fb-root"></div> 
<script type="text/javascript">_ga.trackFacebook();</script> 
<div class="fb-like" data-width="150" data-layout="button_count" data-show-faces="false" data-send="false"></div> 

모든 실제로, 좋은 있지만, 하나의 (방명록에서 작동) 나는 FB 로그인 버튼 (Link to the page이 페이지). FB 로그인 버튼은 PHP 용 Facebook SDK를 사용합니다. 내가 버튼 코드처럼 FB에서

<div id="fb-root"></div> 

을 삭제하지 않는 한

if (!$user): ?> 
    <div id="fb-root" style="display:none"></div> 
    <script language="javascript" type="text/javascript"> //modifica per validazione w3c 
//<![CDATA[ 
document.write('<fb:login-button size="medium" scope="email">Login with/Accedi con Facebook</fb:login-button>'); 
//]]> 
    </script> 

이 표시되지 않습니다. 문제는 FB 로그인 버튼에 fb-root div가 필요하다는 것입니다.

버튼과 같은 FB에서

<div id="fb-root"></div> 

를 삭제하면 버튼 자체에 어떤 피해를 발생하지 않는 것 같다. 여전히 LIKE 버튼을 클릭하고 설명을 추가 할 수 있습니다. 또한 FB 로그인 버튼이 다시 작동합니다. 왜 그럴까요? fb-root div는 FB와 같은 FB에서는 쓸모가 없습니까? (사실, 꽤 많은 stackoverflow 상태에 대한 답변을 반대)

나는 어떻게 버튼 FB에서 fb - 루트 div를 제거하지 않고도 FB 로그인 버튼이 작동하게합니까? 어떤 힌트? xfbml : 사실 사전

답변

0

질문이 요청 이후 상황이 크게 변경 한 경우 나도 몰라,하지만 난 그냥 같은 문제가 있었다, 그리고 FB.init 설정을 사용하여 그것을 해결에

감사합니다.

window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : 'your-app-id', 
    status  : true, 
    cookie  : true, 
    xfbml  : true // if 'false', Login button won't show. 
    }); 
... 
}; 

희망이 있습니다.