Как динамически показать / скрыть кнопку входа в Facebook - PullRequest
4 голосов
/ 10 августа 2009

Как я могу определить через javascript, если пользователь зашел на мой сайт через фейсбук подключить или нет? Исходя из этого результата, я хотел бы показать / не показывать <fb:login-button> кнопка на сайте.

Если я сделал что-то подобное, используя jquery:

<div id="login"></div>

<script>
if (notLoggedIn)
{
   $("#login").html("<fb:login-button></fb>");
}
</script>

Будет ли это работать?

Ответы [ 3 ]

8 голосов
/ 10 августа 2009

Я сделал это так:

HTML:

<div id="logindisplay">
    <span id="login">
      <fb:login-button background="dark" onlogin="facebook_onlogin_ready();">
      </fb:login-button>
    </span>
</div>

ЯШ:

function updateUserBox() {
    var user_box = document.getElementById("login");
    user_box.innerHTML = "<span><fb:name uid=loggedinuser useyou='false'></fb:name><fb:profile-pic uid=loggedinuser facebook-logo='true'></fb:profile-pic></span>";
    FB.XFBML.Host.parseDomTree();
        } 

FB_RequireFeatures(["Connect"], function() {
            FB.init("appkey", "/Content/xd_receiver.htm", { "ifUserConnected": updateUserBox });
            FB.Connect.showPermissionDialog("publish_stream,status_update");
            FB.Connect.requireSession();
        });
2 голосов
/ 24 августа 2009

Я не думаю, что jQuery остановит вас от вставки нестандартных HTML-тегов, но вы определенно захотите изменить закрывающий тег с </fb> на </fb:login-button>.

Кроме того, всякий раз, когда вы вставляете теги XFBML в свой DOM после загрузки страницы, вам нужно будет запросить, чтобы FB API повторно проанализировал DOM. Это должно сделать именно это:

FB.ensureInit(function(){
  FB.XFBML.Host.parseDomTree();
});
1 голос
/ 10 августа 2009

Я не думаю, что вы можете использовать jQuery в Facebook. У них есть собственная оболочка для кода js. Проверьте также это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...