纯js前端 读写cookie
·
主要的function
<script>
// 设置cookie
function setCookie(name, value, days) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
// 获取cookie
function getCookie(name) {
let nameEQ = name + "=";
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i];
while (cookie.charAt(0) == ' ') cookie = cookie.substring(1);
if (cookie.indexOf(nameEQ) == 0) return cookie.substring(nameEQ.length);
}
return null;
}
// 删除cookie
function deleteCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
}
</script>
写入cookie:
var USERNAME = $("#USERNAME").val();
setCookie('USERNAME', USERNAME, 30);
读取cookie:
let USERNAME = getCookie('USERNAME');
$("#USERNAME").val(USERNAME);
完整例子:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>登录</title>
@*<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.8.18/css/layui.css">*@
<link href="~/Content/layui/css/layui.css" rel="stylesheet" />
<script src="~/Content/layui/jquery.min.js.js"></script>
<style>
/* 全局适配手机 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
/*background-color: #f5f5f5;*/
background-color: #1E9FFF;
font-size: 14px;
}
/* 登录容器 */
.login-container {
width: 90%;
max-width: 400px;
margin: 50px auto;
padding: 20px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.login-title {
text-align: center;
font-size: 18px;
color: #333;
margin-bottom: 20px;
font-weight: 600;
}
.layui-form-item {
margin-bottom: 15px;
}
.layui-btn {
width: 100%;
height: 44px;
line-height: 44px;
font-size: 16px;
}
/* 适配小屏手机 */
@@media screen and (max-width: 375px) {
.login-container {
margin: 30px auto;
padding: 15px;
}
.layui-btn {
height: 40px;
line-height: 40px;
}
}
.verification-code {
/* 基础字体设置 - 优先使用无衬线字体,避免模糊 */
font-family: "Courier New", Courier, monospace, "Microsoft YaHei", sans-serif;
/* 字体大小 - 保证清晰可见 */
font-size: 18px;
/* 字体加粗 - 增强辨识度 */
font-weight: 700;
/* 字母大小写 - 统一为大写,减少混淆 */
text-transform: uppercase;
/* 字间距 - 增加字符间区分度 */
letter-spacing: 6px;
/* 禁止文字选中 - 提升用户体验 */
user-select: none;
/* 抗锯齿优化 - 让字体边缘更清晰 */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* 可选:轻微倾斜,增加机器识别难度 */
transform: skew(-2deg);
/* 可选:文字颜色(建议搭配背景色对比强烈) */
color: #333;
/* 可选:背景色 */
background-color: #f5f5f5;
/* 可选:内边距和圆角 */
padding: 8px 16px;
border-radius: 4px;
}
</style>
<script>
$(function () {
Init();
});
function Init() {
const params = new URLSearchParams(window.location.search);
const a = params.get('a');
if (a) {
//generateSimpleCode();//刷新验证码
//cookie
let USERNAME = getCookie('USERNAME'); // 返回 "用户名"
if (USERNAME) {
$("#USERNAME").val(USERNAME);
$('#myCheckbox').prop('checked', true); // true = 勾选
}
else {
$('#myCheckbox').prop('checked', false); // false = 取消勾选
}
let PASSWORD = getCookie('PASSWORD'); // 返回 "密码"
if (PASSWORD) {
$("#PASSWORD").val(PASSWORD);
$('#myCheckbox').prop('checked', true); // true = 勾选
} else {
$('#myCheckbox').prop('checked', false); // false = 取消勾选
}
}
else {
window.location.href = window.location.href + '?a=8744E15A-0E97-41FB-A63B-99FC563232DE';
}
}
function generateSimpleCode() {
const chars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz';// 字符池:排除0/O/1/l/I等易混淆字符
let code = '';
// 循环4次生成随机字符
for (let i = 0; i < 4; i++) {
// 随机选取字符池中的一个字符
const randomIndex = Math.floor(Math.random() * chars.length);
code += chars[randomIndex];
}
//return code;
$("#BTN_CODE").val(code);
}
</script>
<script>
// 设置cookie
function setCookie(name, value, days) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
// 获取cookie
function getCookie(name) {
let nameEQ = name + "=";
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i];
while (cookie.charAt(0) == ' ') cookie = cookie.substring(1);
if (cookie.indexOf(nameEQ) == 0) return cookie.substring(nameEQ.length);
}
return null;
}
// 删除cookie
function deleteCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
}
</script>
</head>
<body>
<div class="login-container">
<div class="login-title">用户登录</div>
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-block">
<input type="text" id="USERNAME" lay-verify="required" placeholder="用户名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-block">
<input type="password" id="PASSWORD" lay-verify="required" placeholder="密码" autocomplete="off" class="layui-input">
</div>
</div>
@*<div class="layui-form-item">
<label class="layui-form-label">验证码</label>
<div class="layui-input-block">
<table>
<tr>
<td><input type="text" id="CODE" lay-verify="required" placeholder="验证码" maxlength="4" autocomplete="off" class="layui-input" style="width:100px;"></td>
<td> <input type="button" id="BTN_CODE" lay-verify="required" class="verification-code" style="width:90px; height:32px;" value="" onclick="generateSimpleCode()"></td>
</tr>
</table>
</div>
</div>*@
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="checkbox" id="myCheckbox" />记住密码
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<input type="button" id="login" class="layui-btn" value="登录" onclick="Login()" />
</div>
</div>
</div>
@*<script src="https://cdn.staticfile.org/layui/2.8.18/layui.js"></script>*@
<script src="~/Content/layui/layui.js"></script>
<script>
function Login() {
//var BTN_CODE = $("#BTN_CODE").val().toUpperCase();
//var CODE = $("#CODE").val().toUpperCase();
var USERNAME = $("#USERNAME").val();
var PASSWORD = $("#PASSWORD").val();
var CK = 0;
const params = new URLSearchParams(window.location.search);
const CMPID = params.get('a');
//if (CODE) {
//if (BTN_CODE == CODE) {
//layer.msg('验证码输入正确!');
if (USERNAME && PASSWORD) {
$.ajax({
data: {
USERNAME: USERNAME,
PASSWORD: PASSWORD,
Key: CMPID,
CK: CK,
OPRTYPE: 0
},
type: "post",
dataType: "json",
url: "/Home/LoginYz",
async: false,
success: function (res) {
debugger;
if (res.UID > 0) {
//cookie
if ($('#myCheckbox').prop('checked')) {
setCookie('USERNAME', USERNAME, 30);
setCookie('PASSWORD', PASSWORD, 30);
} else {
setCookie('USERNAME', "", 30);
setCookie('PASSWORD', "", 30);
}
window.location.href = "/Minisite/Index";
} else {
layer.alert(res.msg, { title: '登录失败', icon: 5 });
}
}
});
}
else {
layer.msg('请输入用户名和密码!');
}
//}
//else {
// layer.msg('验证码输入错误!');
// generateSimpleCode();
//}
//}
//else {
// layer.msg('请输入验证码!');
//}
}
</script>
</body>
</html>
更多推荐

所有评论(0)