簡體   English   中英

如果用戶已經登錄,則隱藏“ FB登錄”按鈕

[英]Hide the FB Login button if user already logged in

這似乎是一個簡單的問題,其他人已經發布了,但是答案仍然使我難以理解。 具體來說,我反復地經歷了這兩個( 這里這里 )SO問題,而我只是沒有與自己的情況建立聯系。

對我來說,我想將登錄按鈕包裝在div中,然后根據登錄狀態更改div可見性。 div確實確實改變了可見性,但是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...................

和ShowFbLogin函數的js代碼

        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';
            }
        }

嘗試使用display: none #fb-login元素不使用。 visibility: collapse用於表元素; 應該就像隱藏可見性一樣,即為不可見按鈕保留空間。 visibility: collapse對於IE8也完全不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM