我正在尝试将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']);
}
}