0

我正在检查用户是否注册了我的应用程序,如果没有,我正在尝试显示一个 facebook 注册按钮,但它没有显示出来。

这是我网页页脚中的 javascript 代码:

<div id="fb-root"></div>
<script type="text/javascript">
  window.fbAsyncInit = function() {
    FB.init({
      appId   : '281914178557709',
      status  : true, // check login status
      cookie  : true, // enable cookies to allow the server to access the session
      xfbml   : true // parse XFBML
    });

    FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
        var uid = response.authResponse.userID;
        var accessToken = response.authResponse.accessToken;
      } 
      else if (response.status === 'not_authorized') {
        alert("Show registration");
        $('#fb_register').html('<label class="control-label" for="fname">&nbsp;</label><div class="controls"><fb:login-button registration-url="/register_facebook.php" /></div>');
      }
   });             
};

(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);
}());

我的 div 标签就是这样的:

<div class="control-group" id="fb_register"></div>

我看到我的警报消息,所以我知道我点击了正确的区域,但按钮无法呈现。如果我使用纯文本,它会呈现。知道为什么 XFBML 没有被渲染吗?

4

1 回答 1

1

我相信在插入 facebook 登录按钮之前正在解析 xfbml,最好的方法是将 facebook 登录按钮包装在 div 中并将其显示设置为无,然后切换它的显示以阻止用户通过身份验证。

于 2012-04-09T13:20:42.413 回答