js小函数

前言

对于项目中常用的一些函数总结。

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;
}
知识兔
计算机