2013-05-06 110 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