2013-05-06 207 views
0

我是新的Javscript SDK,仍然在學習和嘗試創建一個移動Web應用程序,所有我想要做的就是檢查用戶登錄狀態。如果用戶未登錄或未授權應用程序,則顯示沒有額外權限的標準正常登錄按鈕。但是當我測試它時,如果我不登錄並打開Web應用程序頁面,在單擊登錄按鈕之前,登錄對話框會自動彈出兩次/三次。我取消或關閉對話框後,當我點擊登錄按鈕時,沒有任何反應。我正在使用mozilla用戶代理技巧從桌面計算機進行測試。如果有人能夠查看我的代碼並引導我朝着正確的方向,我將非常感激。謝謝。JavaScript SDK:登錄彈出窗口之前點擊登錄按鈕

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({appId: 'app_id', status: true, cookie: true, xfbml: true}); 
    FB.getLoginStatus(fbLoginStatus); 
    FB.Event.subscribe('auth.statusChange', fbLoginStatus); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
<script> 
function fbLoginStatus(response) { 
    if (response && response.status === 'connected') { 
     document.getElementById('loginButton').style.display = 'none'; 
     greetUser(); 
    } else { 
     showLoginButton(); 
    } 
    } 
function authUser() { 
    FB.login(fbLoginStatus); 
} 
function showLoginButton() { 
    document.getElementById('logbutton').innerHTML = (
    '<input id="loginButton" type="button" value="Login!" onclick="'+authUser()+'" />' 
); 
} 
</script> 
<div id="logbutton"></div> 

回答

1
function showLoginButton() { 
    document.getElementById('logbutton').innerHTML = (
    '<input … onclick="'+authUser()+'" />' 
); 
} 

你實際上是調用功能authUser這裏(因爲這是functioname()一樣)。

你想要什麼,而不是爲

'<input … onclick="authUser()" />' 
+0

感謝您的回答。現在工作正常:) – 2013-05-07 15:39:20