2013-08-22 3 views
2

Это похоже на простую проблему, а другие опубликованы, но ответ все еще ускользает от меня. В частности, я прошел через эти два вопроса (here и here), и я просто не делаю связи с моей ситуацией.Скрыть кнопку входа FB, если пользователь уже зарегистрировался

Для меня я подумал, что я бы обернул кнопку входа в div, а затем изменил видимость div на основе состояния входа. Div действительно меняет visibilty, но кнопка входа fb остается видимой ???

Вот мой код для упаковки кнопку для входа в DIV:

....snip.... 
<div id="fblogin"> 
    <table align="center" style="text-align:center;"> 
     <tr>........</tr> 
     <tr> 
      <td> 
       <div id="fb-root"></div> 
        <span id="fb-login"> 
         <div 
          class="fb-login-button" 
          onlogin="afterFbLogin()" 
          data-show-faces="false" 
          data-width="200" 
          data-max-rows="1" 
          data-scope="publish_stream"> 
         </div> 
        </span> 
............snip............. 

вот мой FB.Init и проверки авторизован:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '352810974851050',  // App ID 
     channelUrl: '//www.domain.com/channel.html', 
     status: true, // check login status 
     cookie: true, // enable cookies 
     xfbml: true // parse page for xfbml or html5 like login button below 
    }); 

    // Put additional init code here 
    FB.getLoginStatus(function (response) { 

     if (response.status === 'connected') { 
      var uid = response.authResponse.userID; 
      var accessToken = response.authResponse.accessToken; 
      ShowFbLogin(false); 
     } else if (response.status === 'not_authorized') 
.........snip................... 

и код JS для функция ShowFbLogin

 function ShowFbLogin(ShowLogin) 
     { 
      var div_FBLogin = document.getElementById('fblogin'); 
      var spn_FBLogin = document.getElementById('fb-login'); 
      var div_FBShare = document.getElementById('fbshare'); 

      if (ShowLogin) 
      { 
       div_FBLogin.style.visibility = 'visible'; 
       div_FBShare.style.visibility = 'hidden'; 
      } 
      else 
      { 
       div_FBLogin.style.visibility = 'collapse'; 
       spn_FBLogin.style.visibility = 'collapse'; 
       div_FBShare.style.visibility = 'visible'; 
      } 
     } 
+0

http://stackoverflow.com/questions/1254999/how-to-dynamically-show-hide-a-facebook-login-button?lq=1 проверить это. Это может помочь вам. –

ответ

5

Попробуйте вместо этого используя display: none для #fb-login. visibility: collapse - для элементов таблицы; должен действовать как скрытая видимость, то есть зарезервировать место для невидимой кнопки. visibility: collapse также не работает для IE8 вообще.

+0

не чувствую себя глупым !! Это точно, и сначала мне не нужно его проверять. – GPGVM

Смежные вопросы