前言
对于项目中常用的一些函数总结。
note
阻止F5刷新
$(document).keydown(function(e){
var ev = window.event || e;
var code = ev.keyCode || ev.which;
if (e.keyCode == 116){
ev.keyCode ? ev.keyCode = 0 : ev.which = 0;
cancelBubble = true;
return false;
}
})
Enter键登录
$(document).keydown(function(e){
if (e.keyCode == 13){
$("#codeLoginBtn").trigger("click");
}
})
获取URL后的参数
function getParams(key){
var url = location.search.replace(/^?/,'').split('&');
var paramsObj = {};
for(var i = 0, iLen = url.length; i < iLen; i++){
var param = url[i].split('=');
paramsObj[param[0]] = param[1];
}
if(key){
return paramsObj[key] || '';
}
return paramsObj;
}
localStroage
写入的三种方法:
if(!window.localStorage){
alert("浏览器支持localstorage");
return false;
}else{
var storage=window.localStorage;
//写入a字段
storage["a"]=1;
//写入b字段
storage.a=1;
//写入c字段
storage.setItem("c",3);
}
读取的三种方法:
var a=storage.a;
//第二种方法读取
var b=storage["b"];
//第三种方法读取
var c=storage.getItem("c");
sessionStorage
存值:
//采用setItem()方法存储
sessionStorage.setItem('testKey','这是一个测试的value值'); // 存入一个值
//通过属性方式存储
sessionStorage['testKey'] = '这是一个测试的value值';
取值:
sessionStorage.getItem('testKey'); // => 返回testKey对应的值
sessionStorage['testKey']; // => 这是一个测试的value值
存储Json对象:
var userEntity = {
name: 'tom',
age: 22
};
存储Json对象:
sessionStorage也可存储Json对象:存储时,通过JSON.stringify()将对象转换为文本格式;读取时,通过JSON.parse()将文本转换回对象。
// 存储值:将对象转换为Json字符串
sessionStorage.setItem('user', JSON.stringify(userEntity));
// 取值时:把获取到的Json字符串转换回对象
var userJsonStr = sessionStorage.getItem('user');
userEntity = JSON.parse(userJsonStr);
console.log(userEntity.name); // => tom
密码加密
html
<script type="text/javascript" src="/js/common/sha.js"></script>
js
var password = 大专栏 js小函数$("#forgetNewPassword").val();
var $password = hexPw(password);
function hexPw(newpwd){
//密码加密
var shaObj = new jsSHA("SHA-256", "TEXT");
shaObj.update(newpwd);
var pwdhash = shaObj.getHash("HEX");
return pwdhash
}
监听输入框
//监听登录框的手机号变化,当长度大于0时显示登录按钮
$("#loginPhone").bind('input porpertychange',function(){
var $phone = $(this).val();
console.log($phone);
if($phone.length > 0){
$(".loginClose").show();
}
if($phone.length == 0){
$(".loginClose").hide();
}
});
监听输入框变化,并延时触发函数
var delay = (function () {
var timer = 0;
return function (callback, time) {
clearTimeout(timer);
timer = setTimeout(callback, time);
};
})();
//示例
$('#searchHospital').keyup(function () {
delay(function () {
console.log('test');
}, 1000);
});
获取图形验证码
一般为了刷新图形验证码,会在后面携带一个随机的数字参数
js
function joinReCode(){
var $num = Math.ceil(Math.random()*100000);
var $src = "/login/getJoinCode.htm?random="+$num;
$(".joinCodeImg").attr("src",$src);
}
html
<img class="verification-code joinCodeImg" src="" alt="验证码" />
判断pc或手机端
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
毫秒数转为yyyy-mm-dd
function dateTransform(data){
var unixTimestamp = new Date( data ) ;
Date.prototype.toLocaleString = function() {
return this.getFullYear() + "-" + (this.getMonth() + 1) + "-" + this.getDate();
};
commonTime = unixTimestamp.toLocaleString();
return commonTime;
}