// 判断是windows系统
var isWindows = function () {
return /windows|win32/i.test(navigator.userAgent);
}
var zPassport = {
ConuntryCodePhoneShowEffectEle: null,
getConuntryCodePhoneShowEffectEle: function (thisPhoneInput) {
zPassport.ConuntryCodePhoneShowEffectEle = thisPhoneInput;
if ($('#country-area-code').length) {
zPassport.ConuntryCodePhoneShowEffectEle = thisPhoneInput.parents('.country-phone-covers');
return zPassport.ConuntryCodePhoneShowEffectEle;
}
},
mainlandAreaCodeEle: $('#country-code-ipt'),
getMainlandAreaCodeEle: function () {
if (!$('#country-area-code').is(':visible')) {
zPassport.mainlandAreaCodeEle = $('');
} else {
}
},
mainlandConuntryCode: "+86",
countryCodeIsn:function(){
// 判断区号是否shi显示
// 忘记密码页用到,邮箱,手机号是一个input
if(!$('#country-area-code').is(':visible')){
zPassport.mainlandAreaCodeEle = $('');
}else{
zPassport.mainlandAreaCodeEle = $('#country-code-ipt');
}
// 判断地区号是不是等于“+86”
if($.trim(zPassport.mainlandAreaCodeEle.val()) != zPassport.mainlandConuntryCode){
// !="+86" 非大陆手机号
$('#mobilephone,#oldmobilephone').attr('maxlength','')
return false;
}else{
$('#mobilephone,#oldmobilephone').attr('maxlength','11')
return true;
}
},
messagesWeb: {
common_send: "发送",
form_validation_nameorpass: "请输入账户名和密码",
form_validation_name: "请填写账户名",
form_validation_pass: "请输入密码",
pop_click_send_voice_vericode: "点击发送获取语音验证码",
"logIn": {
login_copy: "登录",
login_logining: "登录中...",
login_error_registered_tip1: "帐号未注册,你可以",
login_error_registered_tip2: "去注册",
login_error_pass_easy: "密码过于简单,前往修改密码?",
login_toast_black: "该帐号已被管理员拉黑",
login_accect_disabled: "您的账号已被管理员禁用",
login_pass_wrong_time: "帐号或密码错误,你还可以尝试",
login_pass_wrong_time2: "次",
login_user_locked: "您的账号由于密码累计输错五次已被锁定,重置密码或两小时后自动解锁",
login_name_offline_tips: "为了更好的维护帐号安全体系,用
户名登录功能已下线,请使用:",
login_name_offline_tips2: "用户名登录功能已下线,请使用
手机号/邮箱登录",
},
"commentVerification": {
phone_num_format: "请输入正确的手机号",
phone_empty: "请填写手机号",
phone_not_reg_tips1: "该手机号尚未注册,你可以",
phone_not_reg_tips2: "去注册",
vericode_wrong: "验证码不正确",
vericode_empty: "请输入验证码"
},
}
}
var loginWindowEle = {
passLoginShowTipsDom: $('#pass-error-tips'),
smsLoginErrorTipsDom: $('#sms-error-tips'),
passLoginErrorTipsDom:$('.error-tips')
}
var zCheckAll = {
str: {
phoneA: /^((13[0-9])|(14[0-9])|(16[0-9])|(17[0-9])|(15[0-9])|(18[0-9]|(19[0-9])))\d{8}$/,
vericodes: /^\d+$/,
NonMainlandPhonNumber: /^[0-9]+$/
},
formMsg: {
msg0: zPassport.messagesWeb.commentVerification.phone_empty,
msg1: zPassport.messagesWeb.commentVerification.phone_num_format,
msg2: zPassport.messagesWeb.commentVerification.phone_not_reg_tips1,
msg3: zPassport.messagesWeb.commentVerification.phone_not_reg_tips2,
msg4: zPassport.messagesWeb.commentVerification.vericode_wrong,
msg5: zPassport.messagesWeb.commentVerification.vericode_empty
},
checkEmpty: function (value) {
if (value == " " || value == "") {
return 0;
} else {
return 1;
}
},
checkCountryPhone: function (value) {
if (value == " " || value == "") {
return 0;
} else {
if (this.str.NonMainlandPhonNumber.test(value)) {
return 1;
} else {
return 0;
}
}
},
checkPhone: function (value) {
if (value == " " || value == "") {
return 0;
} else {
if (this.str.phoneA.test(value)) {
return 1;
} else {
return 0;
}
}
},
countryCodeDiffCheck: function (value) {
zPassport.getMainlandAreaCodeEle();
if ($.trim(zPassport.mainlandAreaCodeEle.val()) != zPassport.mainlandConuntryCode) {
$('#mobilephone').attr('maxlength', '')
return zCheckAll.checkCountryPhone(value)
} else {
$('#mobilephone').attr('maxlength', '11')
return zCheckAll.checkPhone(value)
}
},
checkvericode: function (value) {
if (value == " " || value == "") {
return 0;
} else {
if (this.str.vericodes.test(value)) {
return 1;
} else {
return 0;
}
}
},
checkNc: function () {
if ($('.nc-lang-cnt').attr('data-nc-lang') != '_yesTEXT') {
return false;
}
}
}
function reinitIframe() {
try {
var bHeight = window.frames['loginChild'].contents().find("body").height();
var dHeight = $('#login-box').outerHeight();
var height = Math.max(bHeight, dHeight);
$("#loginChild").css({ "height": height });
console.log(height);
} catch (ex) { }
}
(function autoHeight(){
var b_width = Math.max(document.body.scrollWidth,document.body.clientWidth);
var b_height = Math.max(document.body.scrollHeight,document.body.clientHeight);
})();
window.setInterval("reinitIframe()", 200);
// toast提示
function passPageToast(msg) {
if (!$('.pass-toast-div').length) {
$('body').append('
' + popMsg + '
' + '" + recommendLogin + "登录
"); $('.alert-confirm .pop-confirm').on('click', function () { $(this).parents('.alert-confirm').addClass('hide') if (fn1AlertCallback) { fn1AlertCallback(); } }) $('.alert-confirm .pop-close').on('click', function () { $(this).parents('.alert-confirm').addClass('hide') }) } // 图文验证码 function loadRandomCodeImg() { var t = new Date().valueOf(); var imageCode = $('#l-image-code'); $('#l-image-code').show(); $('.js-image-code-tips').addClass('code-wrong').removeClass('code-right') $('#randomCodeImg').attr('src', '/loginRandomImg.jpg?t=' + t + "&r=" + ($z.options ? $z.options.random : '')); if (imageCode.is(':visible')) { if ($('#ipt-code').val() == "") { $('#loginbtn').removeClass('btn-default-main').addClass('btn-disabled').attr('disabled',true); } if ($('#ipt-code').val().length < 5) { $('.js-image-code-tips').addClass('code-wrong').removeClass('code-right') } } } // 登录的微信二维码 // redirect_uri暂不支持https function wxCodeLogin() { if ($('#login_container').length > 0) { var obj = new WxLogin({ id: "login_container", appid: "wxef5765dd395d8504", scope: "snsapi_login", redirect_uri: "https://passport.zcool.com.cn/thirdlogin/wechat_callback.do?appId=" + appId, state: "STATE", style: "", href: "https://static.zcool.cn/passport4.0/css/wxCode.css?v=0.1" }) } } // 获取location登录应用Id function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); var paramas = location.href.split('?'); if(!paramas || paramas.leng<2 || !paramas[1]){ return null; } var r = paramas[1].match(reg); if (r != null) { return unescape(r[2]); } return null; } /** * cback 登录成功后回调的地址,默认为产品首页 * loginType 1为弹窗登录,不填为页面登录 * appId 登录应用Id * appLogin 可指定解析用户TOKEN地址,默认为各产品配置的login_cb * */ var appId = getQueryString("appId"); var appLogin = $('#appLogin').attr('value'); var cback = $('#cback').attr('value'); var loginType = $('#loginType').attr('value'); var aa_username; var aa_callback; var aa_needconfirmpassnum; /** * 添加登录的各个注册事件 */ window.passLoginWindowEvent = function (appId, appLogin) { // 清空手机号相关信息 $('#mobilephone').val(''); $('#sms-cd').val(''); loginWindowEle.smsLoginErrorTipsDom.hide(); $('.js-ipt-h').hide(); $('#sms-send-cd-btn').attr('disabled', true).removeClass('btn-default-main').addClass('btn-disabled'); // wxCodeLogin() /** * 点击登录按钮执行内容; * @param {*} clickThisDom 当前点击的登录按钮元素 */ function registeredFn(clickThisDom) { if (!clickThisDom.hasClass('btn-disabled')) { if (clickThisDom.prop('id') == "loginbtn") { // 账号密码登录 doLogin(); }else if (clickThisDom.prop('id') == "sms-forget-sub") { // 账号密码登录 doForget(); } else { // 注册 if(!$('.check-cd')[0]){ alert(lang_works_readed); return; } clickThisDom.val('提交中...').attr('disabled', true) smsDoLogin() } } } // 账号密码登录按钮注册事件; $('#loginbtn').on('click', function () { registeredFn($(this)) }) // 短信登录按钮注册事件 $('#sms-login-sub').on('click', function () { registeredFn($(this)) }) // 短信登录按钮注册事件 $('#sms-forget-sub').on('click', function () { registeredFn($(this)) }) // 回车事件登录 $(document).on('keyup', function (event) { var e = event || window.event || arguments.callee.caller.arguments[0]; if (e.keyCode == 13) { if ($('#loginbtn').is(':visible')) { registeredFn($('#loginbtn')) }else if ($('#sms-forget-sub').is(':visible')) { registeredFn($('#sms-forget-sub')) } else if ($('#sms-login-sub').is(':visible')) { registeredFn($('#sms-login-sub')) } } }) // 账号密码的图文验证交互 $('#ipt-code').on('keyup', function () { var code = $('#ipt-code').val(); var codeLength = code.length; if (codeLength >= 5) { $('#loginbtn').addClass('btn-default-main').removeClass('btn-disabled').removeAttr('disabled'); var codeTips = $('.js-image-code-tips') $.getJSON('/check_imgcode.do?code=' + code + '&r=' + ($z.options ? $z.options.random : '') + '&jsonpCallback=?', {}, function (data) { if (data.result) { codeTips.addClass('code-right').removeClass('code-wrong') } else { codeTips.addClass('code-wrong').removeClass('code-right') } }); } else { $('#loginbtn').removeClass('btn-default-main').addClass('btn-disabled').attr('disabled',true); } }) // 下次自动登录 $('.auto-login label').on('click', function () { $("input[name=autolog]").parent().removeClass().addClass('auto-login-c') $("input[name=autolog]:checked").parent().removeClass().addClass('auto-login-cd') }) } passLoginWindowEvent(appId, appLogin); /** * 账号密码登录 */ function doLogin() { var aa_username = $.trim($('#username').val()); var password = $.trim($('#password').val()); if ($(".pass-login-covers input[name=autolog]").parent().hasClass('auto-login-c')) { var remember = 0; } else { var remember = 1; } $.ajax({ type: "post", url: "/api/login", data: { name:aa_username, remember:remember,password:password }, xhrFields: { withCredentials: true }, headers: { "X-Requested-With": "XMLHttpRequest" }, dataType: "json", success: function(data){ if (data && data.code == 0) { parent.location.href="/info"; }else{ // 正常应该不会走到该代码 alert(data.msg) } $('#loginbtn,#sms-login-sub').val('Login').removeAttr('disabled'); }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log("=====" + XMLHttpRequest); } }) } /** * 账号修改密码 */ function doForget() { var Phone = $('#mobilephone').val(); var vericode = $('#vericode').val(); var password = $('#password').val(); $.ajax({ url: "/api/forget", type:"post", data: { phoneNum:Phone, vericode:vericode,password:password }, dataType: 'json', success: function (data) { if(data.code==0){ alert(data.msg); parent.location.href="/login"; }else{ alert(data.msg); } }, error: function (data) { alert('操作失败,请稍后重试'); }, }); } //短信注册 function smsDoLogin() { if ($('#mobilephone').attr('pass') == "n") { alert("手机号码已被注册"); $('#sms-login-sub').val('登录').removeAttr('disabled'); } else { phoneSubmitVerForm(); } } // 第三方登录的跳转(iframe) $('.account-login>a').on('click',function(){ top.location.href = $(this).attr('data-href') }) // 验证 用户名、密码、验证码是否为空,高亮登录按钮交互; function toEmpty() { var name = $.trim($('#username').val()); var password = $.trim($('#password').val()); if (name != '' && password != '') { $('#loginbtn').removeClass('btn-disabled').addClass('btn-default-main').removeAttr('disabled') } else { $('#loginbtn').addClass('btn-disabled').removeClass('btn-default-main').attr('disabled',true) } if ($('#ipt-code').closest('.code').is(':visible') && $('#ipt-code').val() == "") { $('#loginbtn').addClass('btn-disabled').removeClass('btn-default-main').attr('disabled',true) } } // 背景图太大时,因谷歌浏览器执行机制记录账号、密码了,但再加载js同时却获取不到input所填充的值,导致登录按钮不会被激活高亮(高亮是个交互效果),所以用以下代码判断激活按钮; $('#username').on('keyup input', function () { var name = $.trim($('#username').val()); // if (name.length < 5) { // toEmpty() // // $('#username').off('blur'); // } if ($('#password').val() != "") { toEmpty() // $('#username').off('blur'); } }) $('#password').on('keyup input', function () { toEmpty() }) // window.onload = function () { // var name = $.trim($('#username').val()); // var password = $.trim($("#password").val()); // if (name != '' || password != '') { // $('#loginbtn').removeClass('btn-disabled').addClass('btn-default-main') // } // } // 手机号注册 function phoneSubmitVerForm() { var Phone = $('#mobilephone').val(); var vericode = $('#vericode').val(); var password = $('#password').val(); var countryCode = $('#country-code-ipt').val(); $.ajax({ url: "/api/regist", type:"post", data: { phoneNum:Phone, vericode:vericode,password:password,countryCode:countryCode }, dataType: 'json', success: function (data) { if(data.code==0){ alert(data.msg); parent.location.href="/info"; }else{ alert(data.msg); $('#sms-login-sub').val('登录').removeAttr('disabled'); } }, error: function (data) { alert('操作失败,请稍后重试'); }, }); } // 手机验证码是否正确 function checkPhoneCodeAsync(phoneDom, codeDom, checkPhoneCodeSuccessCb) { $.ajax({ url: "/checkPhoneCode.do", type: "get", data: { phoneNum: phoneDom.val(), param: codeDom.val() }, dataType: 'jsonp', jsonp: 'callback', success: function (data) { checkPhoneCodeSuccessCb(data); } }); } // 激活手机号登录按钮状态 function loginSMSBtnLighthight() { if ($('#mobilephone').val() != "" && $('#vericode').val() != "" && $('#password').val() != "") { $('#sms-login-sub').addClass('btn-default-main').removeClass('btn-disabled').removeAttr('disabled'); $('#sms-forget-sub').addClass('btn-default-main').removeClass('btn-disabled').removeAttr('disabled'); } else { $('#sms-login-sub').removeClass('btn-default-main').addClass('btn-disabled').attr('disabled',true); $('#sms-forget-sub').addClass('btn-default-main').removeClass('btn-disabled').removeAttr('disabled'); } } // 激活发送验证码按钮状态 function activatePhoneLoginVerCode() { if (zCheckAll.countryCodeDiffCheck($('#mobilephone').val()) == 1 && $('#sms-send-cd-btn').attr('time') != '0') { $('#sms-send-cd-btn').removeClass('btn-disabled').addClass('btn-default-main').removeAttr('disabled'); } else { $('#sms-send-cd-btn').addClass('btn-disabled').removeClass('btn-default-main').attr('disabled',true); } } // 手机号是否存在 function isExistsAsync(thisDom, isExistsuccessCb) { $.ajax({ url: "/api/exists", type: "get", data: { mobile: thisDom.val() }, success: function (data) { isExistsuccessCb(data) } }) } $('#mobilephone').bind('keyup', function () { loginSMSBtnLighthight() //activatePhoneLoginVerCode() 判断手机号是否存在 }) // 手机验证码 $('#vericode').bind('keyup', function () { loginSMSBtnLighthight() }) // 密码 $('#password').bind('keyup', function () { loginSMSBtnLighthight() }) $('#mobilephone').bind('blur', function () { var _this = $(this); activatePhoneLoginVerCode() isExistsAsync(_this, isExistsuccessCb) function isExistsuccessCb(data) { switch (data.status) { case "n": $('#mobilephone').attr('pass', 'n') break; case "y": $('#mobilephone').attr('pass', 'y') break; } } }) // 手机验证码倒计时; wait = 60; function smsWaitTime(o, waitP) { if (wait == 0) { $(o).removeAttr('disabled'); $(o).removeClass("btn-disabled").addClass('btn-default-main').removeAttr('disabled'); $(o).val("发送验证码"); wait = waitP; $(o).attr('time', '1') $('.js-no-ver-code').show(); } else { $(o).prop('disabled', true); $(o).addClass("btn-disabled").removeClass('btn-default-main').attr('disabled',true); $(o).attr('disabled', 'disabled'); $(o).val(wait + 's' + "后重新发送"); $(o).attr('time', '0') wait--; setTimeout(function () { smsWaitTime(o, waitP) }, 1000); } } // 发送手机验证码 function verifyCodeSend() { if ($('#mobilephone').val() != '') { $.ajax({ url: '/api/phoneSendcodeNew', data: { phoneNum: $('#mobilephone').val(), a_from: 1, countryCode: $('#country-code-ipt').val() }, dataType: 'json', success: function (data) { if (!data.result) { passPageToast(data.msg); }else{ smsWaitTime($('#sms-forget-btn'), 60); } }, error: function (data) { console.log(data); alert("手机验证码发送异常") }, }); } else { alert("请填写手机号"); } } //发送手机验证码 function verifyCodeSend2() { if ($('#mobilephone').val() != '') { $.ajax({ url: '/api/phoneSendcodeNew', data: { phoneNum: $('#mobilephone').val(), a_from: 2, countryCode: $('#country-code-ipt').val() }, dataType: 'json', success: function (data) { if (!data.result) { passPageToast(data.msg); }else{ smsWaitTime($('#sms-send-cd-btn'), 60); } }, error: function (data) { console.log(data); alert("手机验证码发送异常") }, }); } else { alert("请填写手机号"); } } // 发送语音验证码 function Voicecode(regkey) { $.ajax({ url: '/phoneSendVoicecode.do?TOKEN=' + regkey, data: { phoneNum: $('#mobilephone').val(), a_session: $('#a_session').val(), a_sig: $('#a_sig').val(), a_token: $('#a_token').val(), a_scene: $('#a_scene').val(), a_from: 3, countryCode: $('#country-code-ipt').val() }, dataType: 'json', success: function (data) { $('.pop-up-confirm .pop-confirm').val("发送").removeAttr('disabled'); if (!data.result) { passPageToast(data.msg) } else { passPageToast("已向你发送语音验证码") } $('.pop-up-confirm').hide(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log("发送语音验证码" + XMLHttpRequest) $('.pop-up-confirm .pop-confirm').val("发送").removeAttr('disabled'); }, }); } // 点击发送验证码事件注册 $('#sms-send-btn').on('click', function () { verifyCodeSend() }) // 点击发送验证码事件找回密码 $('#sms-forget-btn').on('click', function () { verifyCodeSend2() }) // 未收到验证码发送语音验证码事件 $('.js-no-ver-code').on('click', function () { function smsCodeConfirm() { $('.pop-up-confirm .pop-confirm').val("提交中...").attr('disabled', true); var regkey = $('#regkey').val(); Voicecode(regkey) } if($('#sms-send-cd-btn').attr('time') == 0){ passPageToast("正在发送验证码,请稍后再试"); return false; } createPassConfirmPop(zPassport.messagesWeb.pop_click_send_voice_vericode, "", smsCodeConfirm) $('.pop-up-confirm .pop-confirm').val(zPassport.messagesWeb.common_send) }) // 给区号列表注册click事件 function bindEventArea() { $('body .code-list-ul').on('click', 'li', function () { $('.js-area-box').hide(); var areaId = $(this).attr('data-id'); var areaCode = $(this).attr('data-code'); $('#country-area-code').text(areaCode); $('#country-code-ipt').val(areaCode) activatePhoneLoginVerCode() }) } // 获取手机区号成功后的回调 function countryPhoneCodeSuccessCb(data) { var areaList = '