七天免登录JavaScript实现

html代码

<label for="">用户名:</label><input type="text" id="username">
<label for="">密码:</label><input type="text" id="password">
<label for=""><input type="checkbox" id="check">7天免登陆</label>
<input type="button" value="登陆" id="btn">

JS代码

封装cookie

//设置cookie
function setCookie(_name, val, expires) {
    var d = new Date();
    d.setDate(d.getDate() + expires);
    document.cookie = _name + "=" + val + ";path=/;expires=" + d.toGMTString();
}

//获取cookie
function getCookie(_name) {
    var cookie = document.cookie;
    var arr = cookie.split("; ");
    for (var i = 0; i < arr.length; i++) {
        var newArr = arr[i].split("=");
        if (newArr[0] == _name) {
            return newArr[1];
        }
    }
}
  /*
        如何将json对象转换为字符串
            JSON.stringify(对象);
            返回值是一个字符串

        如何将字符串转换为json对象
            JSON.parse(字符串)
            返回值是对象

     */
    var oBtn = document.getElementById("btn");
    var oUser = document.getElementById("username");
    var oPass = document.getElementById("password");
    var oCheck = document.getElementById("check");

    if (getCookie("init")) {
        var cookie = JSON.parse(getCookie("init"));
        oUser.value = cookie.name;
        oPass.value = cookie.pass;
        oCheck.checked = true;
    }

    oBtn.onclick = function () {
        if (oCheck.checked) {
            var obj = {};
            obj.name = oUser.value;
            obj.pass = oPass.value;
            var str = JSON.stringify(obj);
            setCookie("init", str, 7);
        }
    }
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简单的实现七天登录JavaScript 代码: ```javascript const CookieUtil = { // 获取指定名称的 cookie 值 get: function (name) { let cookieName = encodeURIComponent(name) + "=" let cookieStart = document.cookie.indexOf(cookieName) let cookieValue = null if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart) if (cookieEnd == -1) { cookieEnd = document.cookie.length } cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd)) } return cookieValue }, // 设置 cookie 值 set: function (name, value, expires, path, domain, secure) { let cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value) if (expires instanceof Date) { cookieText += "; expires=" + expires.toGMTString() } if (path) { cookieText += "; path=" + path } if (domain) { cookieText += "; domain=" + domain } if (secure) { cookieText += "; secure" } document.cookie = cookieText }, // 删除指定名称的 cookie unset: function (name, path, domain, secure) { this.set(name, "", new Date(0), path, domain, secure) } } // 判断是否登录 function checkLogin() { let username = CookieUtil.get("username") if (username) { // 已登录 // TODO: 执行登录后的操作 } else { // 未登录 let rememberMe = CookieUtil.get("rememberMe") if (rememberMe == "true") { // 自动登录 let password = CookieUtil.get("password") // TODO: 执行自动登录后的操作 } else { // 显示登录页面 // TODO: 显示登录页面 } } } // 登录 function login() { // 获取用户名和密码 let username = document.getElementById("username").value let password = document.getElementById("password").value // TODO: 执行登录操作 // 判断是否勾选七天登录 let rememberMe = document.getElementById("rememberMe").checked if (rememberMe) { // 设置七天登录 let expires = new Date() expires.setTime(expires.getTime() + 7 * 24 * 60 * 60 * 1000) CookieUtil.set("username", username, expires) CookieUtil.set("password", password, expires) CookieUtil.set("rememberMe", "true", expires) } else { // 删除七天登录 CookieUtil.unset("username") CookieUtil.unset("password") CookieUtil.unset("rememberMe") } } ``` 在页面中,需要添加以下元素: ```html <input type="text" id="username" /> <input type="password" id="password" /> <input type="checkbox" id="rememberMe" /> <label for="rememberMe">七天登录</label> <button onclick="login()">登录</button> ``` 其中,`username` 和 `password` 用于输入用户名和密码,`rememberMe` 用于勾选七天登录,`login()` 方法用于执行登录操作。在 `checkLogin()` 方法中,判断是否已登录,如果已登录则执行登录后的操作,否则判断是否勾选七天登录,如果勾选则执行自动登录操作,否则显示登录页面。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值