在FF和IE中显示Google+登录按钮的问题.适用于铬



我正在尝试将google+登录按钮添加到我的页面。我已按照开发人员文档中的步骤进行操作:https://developers.google.com/+/web/signin/add-button

如果用户已登录到Google,则它可以在所有浏览器中正常工作。如果用户未登录 google,则只会在 Chrome 中显示登录按钮,而不会在 FF 和 IE 中显示登录按钮。在FF和IE中,渲染的html按钮的高度和宽度均为1px。如果我直接在浏览器中更改高度和宽度,则该按钮就在那里并且功能正常。

有谁知道它只在FF和IE中会有这种行为,而在Chrome中没有?

这是我的 html 代码:

    <span id="signinButton">
        <span
          class="g-signin"
          data-callback="googleCallback"
          data-clientid="###key###"
          data-cookiepolicy="single_host_origin"
          data-requestvisibleactions="http://schema.org/AddAction"
          data-scope="https://www.googleapis.com/auth/plus.login">
        </span>
     </span>
     <script src="https://apis.google.com/js/client:platform.js" async defer></script>

还有我的JS代码:

function googleCallback(authResult)     {
    if (authResult['status']['signed_in']) {
        console.log("ok");
    } else {
        // Update the app to reflect a signed out user
        // Possible error values:
        //   "user_signed_out" - User is signed-out
        //   "access_denied" - User denied access to your app
        //   "immediate_failed" - Could not automatically log in the user
        console.log('Sign-in state: ' + authResult['error']);
      }
}

由于我没有收到任何回复,我将在此处发布我如何绕过此问题。

这是一种非常肮脏的方式。我不喜欢。如果有人找到更好的方法,请告诉我

我更新了googleCallback函数,以便它更改按钮的CSS。它修改高度和宽度:

function googleCallback(authResult)     {
    if (authResult['status']['signed_in']) {
        console.log("ok");
    } else {
        // Update the app to reflect a signed out user
        // Possible error values:
        //   "user_signed_out" - User is signed-out
        //   "access_denied" - User denied access to your app
        //   "immediate_failed" - Could not automatically log in the user
        console.log('Sign-in state: ' + authResult['error']);
      }
}

最新更新