javascript - 谷歌注册不适用于第一次点击元素,但之后工作正常。为什么?
问题描述
您好,我正在使用 google api 登录我的网络应用程序。它工作正常。但问题是 sigin 在我的应用程序中是自动的,但对于注册,我想在用户检查条款和条件后启动该过程,并且该过程将开始。
下面是JS代码:
var googleUser = {};
var auth2;
var startApp = function() {
gapi.load('auth2', function(){
auth2 = gapi.auth2.init({
client_id: 'XXXXXX',
});
$("body").on("click", ".googlesignin", function(e){
if($('#terms').is(":checked")){
termsvalue='1';
$("#termsValidation").hide();
$("#termsValidation").attr("data-hint", $("").text());
attachSignup(document.getElementById("googlesignin"));
}
else
{
e.preventDefault();
termsvalue='';
$("#termsValidation").show();
$("#termsValidation").attr("data-hint", "Please agree by clicking checkbox");
return false;
}
});
});
};
function attachSignup(element) {
auth2.attachClickHandler(element, {},
function(googleUser) {
var profile = googleUser.getBasicProfile();
console.log(googleUser.getAuthResponse().id_token);
var googleurl = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + googleUser.getAuthResponse().id_token
$.getJSON(googleurl, function(result){
$("#rfirstname").val(result.given_name);
$("#remail").val(result.email);
$("#googlePicture").val(result.picture);
$("#google_id").val(result.sub);
});
}, function(error) {
parsed_error = JSON.stringify(error, undefined, 2);
parsed_error = JSON.parse(parsed_error);
if(popup_closed_by_user!='popup_closed_by_user'){
alert(popup_closed_by_user);
}
});
};
startApp();
这是我的html:
<html>
<head>
<meta name="google-signin-client_id" content="XXXXXX">
<script src="https://apis.google.com/js/api:client.js"></script>
</head>
<body>
<div>
<input type="checkbox" id="terms">
<div id="googlesignin" class="googlesignin"><img alt="" src="google.png" style="vertical-align: initial;"></div>
</div>
</body>
</html>
第一次点击它不起作用,但之后它工作正常。需要帮忙。提前致谢。
解决方案
我建议尝试评论最后一行startApp
并在加载jQuery时添加下面的钩子..像这样,希望这会有所帮助
// startApp();
(function($){
$(document).ready(function(){
startApp();
}); // - end DOCREADY
})(jQuery);
推荐阅读
- python - 如何在 Python 上使用 Selenium 处理下拉菜单?
- python - 如何从函数中返回运算符?
- html - HTML 文本在 GRID ROW 上更改宽度
- python - 尝试打开 shapefile
- android - Google Play 控制台警告:未知验证 VALIDATE_APP_MESSAGE_NO_APKS
- c - 以下代码中用于设计解析器的错误在哪里?
- python-3.x - sublime text 3 anaconda 重启后停止工作
- php - 读取外部文件以在 Symfony 5 中配置学说
- python - 如何使用 tensorflow.data.Dataset.flat_map(my_func) 与多个参数的功能?
- javascript - 为图像添加旋转效果