0

我是 Javscript SDK 的新手,仍在学习并尝试创建移动 Web 应用程序,而我要做的就是检查用户的登录状态。如果用户未登录或未授权应用程序,则显示标准的正常登录按钮,没有额外权限。但是当我测试它时,如果我没有登录并打开 Web 应用程序页面,在单击登录按钮之前,登录对话框会自动弹出两/三次。在我取消或关闭对话框后,当我单击登录按钮时,没有任何反应。我正在使用 Mozilla 用户代理技巧从台式计算机进行测试。如果有人能审查我的代码并引导我走向正确的方向,我将非常感激。谢谢。

<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>
4

1 回答 1

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

您实际上是在此处调用该函数authUser(因为它就是这样functioname()做的)。

你想要的是

'<input … onclick="authUser()" />'
于 2013-05-07T12:34:08.313 回答