js操作cookie

合集下载

轻量级JSCookie插件js-cookie的使用方法

轻量级JSCookie插件js-cookie的使用方法

轻量级JSCookie插件js-cookie的使⽤⽅法Cookie是⽹站设计者放置在客户端的⼩⽂本⽂件,⼀般后台语⾔使⽤的⽐较多,可以实现⽤户个性化的⼀些需求。

js-cookie 插件是⼀个JS操作cookie的插件,源⽂件只有3.34 KB,⾮常轻量级。

js-cookie也⽀持npm和Bower安装和管理。

下⾯看看js-cookie的具体⽤法。

A simple, lightweight JavaScript API for handling cookiesWorks in all browsersAccepts any characterHeavily testedNo dependencyUnobtrusive JSON supportSupports AMD/CommonJSRFC 6265 compliantUseful WikiEnable custom encoding/decoding~900 bytes gzipped!引⽤⽅法:1、引⼊js-cookie.js1.直接饮⽤cdn:<script src="https:///npm/js-cookie@2/src/js.cookie.min.js"></script>2.本地下载下来后:<script src="/path/to/js.cookie.js"></script>3.模块化开发时: import Cookies from 'js-cookie'2、js-cookie.js常⽤的API和⽅法a、设置cookieCookies.set('name', 'value', { expires: 7, path: '' });//7天过期Cookies.set('name', { foo: 'bar' });//设置⼀个jsonb、读取cookieCookies.get('name');//获取cookieCookies.get(); #读取所有的cookiec、删除cookieCookies.remove('name'); #删除cookie时必须是同⼀个路径。

JS设置cookie,删除cookie

JS设置cookie,删除cookie

JS设置cookie,删除cookiejs设置cookie有很多种⽅法。

第⼀种:(这个是w3c官⽹的代码)<script>//设置cookiefunction setCookie(cname, cvalue, exdays) {var d = new Date();d.setTime(d.getTime() + (exdays*24*60*60*1000));var expires = "expires="+d.toUTCString();document.cookie = cname + "=" + cvalue + "; " + expires;}//获取cookiefunction getCookie(cname) {var name = cname + "=";var ca = document.cookie.split(';');for(var i=0; i<ca.length; i++) {var c = ca[i];while (c.charAt(0)=='') c = c.substring(1);if (c.indexOf(name) != -1) return c.substring(name.length, c.length);}return"";}//清除cookiefunction clearCookie(name) {setCookie(name, "", -1);}function checkCookie() {var user = getCookie("username");if (user != "") {alert("Welcome again " + user);} else {user = prompt("Please enter your name:", "");if (user != "" && user != null) {setCookie("username", user, 365);}}}checkCookie();</script>第⼆种:<script>//JS操作cookies⽅法!//写cookiesfunction setCookie(c_name, value, expiredays){ var exdate=new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); }//读取cookiesfunction getCookie(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");if(arr=document.cookie.match(reg))return (arr[2]);elsereturn null;}//删除cookiesfunction delCookie(name){var exp = new Date();exp.setTime(exp.getTime() - 1);var cval=getCookie(name);if(cval!=null)document.cookie= name + "="+cval+";expires="+exp.toGMTString();}//使⽤⽰例setCookie('username','Darren',30)alert(getCookie("username"));</script>第三个例⼦<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><head><script language="JavaScript" type="text/javascript">function addCookie(objName, objValue, objHours){//添加cookievar str = objName + "=" + escape(objValue);if (objHours > 0) {//为0时不设定过期时间,浏览器关闭时cookie⾃动消失var date = new Date();var ms = objHours * 3600 * 1000;date.setTime(date.getTime() + ms);str += "; expires=" + date.toGMTString();}document.cookie = str;alert("添加cookie成功");}function getCookie(objName){//获取指定名称的cookie的值var arrStr = document.cookie.split("; ");for (var i = 0; i < arrStr.length; i++) {var temp = arrStr[i].split("=");if (temp[0] == objName)return unescape(temp[1]);}}function delCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为⼀个过去的时间var date = new Date();date.setTime(date.getTime() - 10000);document.cookie = name + "=a; expires=" + date.toGMTString();}function allCookie(){//读取所有保存的cookie字符串var str = document.cookie;if (str == "") {str = "没有保存任何cookie";}alert(str);}function $(m, n){return document.forms[m].elements[n].value;}function add_(){var cookie_name = $("myform", "cookie_name");var cookie_value = $("myform", "cookie_value");var cookie_expireHours = $("myform", "cookie_expiresHours");addCookie(cookie_name, cookie_value, cookie_expireHours);}function get_(){var cookie_name = $("myform", "cookie_name");var cookie_value = getCookie(cookie_name);alert(cookie_value);}function del_(){var cookie_name = $("myform", "cookie_name");delCookie(cookie_name);alert("删除成功");}</script></head><body><form name="myform"><div><label for="cookie_name">名称</label><input type="text" name="cookie_name" /></div><div><label for="cookie_value">值</lable><input type="text" name="cookie_value" /></div><div><label for="cookie_expireHours">多少个⼩时过期</lable><input type="text" name="cookie_expiresHours" /></div><div><input type="button" value="添加该cookie" onclick="add_()"/><input type="button" value="读取所有cookie" onclick="allCookie()"/><input type="button" value="读取该名称cookie" onclick="get_()"/><input type="button" value= </div></form></body></html>注意:chrome浏览器在本地获取不到cookie。

[JS]九种网页弹窗代码

[JS]九种网页弹窗代码

[JS]九种⽹页弹窗代码【1、最基本的弹出窗⼝代码】其实代码⾮常简单:<SCRIPT LANGUAGE="javascript"><!--window.open ("page.html")--></SCRIPT>因为着是⼀段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。

<!-- 和 -->是对⼀些版本低的浏览器起作⽤,在这些⽼浏览器中不会将标签中的代码作为⽂本显⽰出来。

要养成这个好习惯啊。

window.open (page.html) ⽤于控制弹出新的窗⼝page.html,如果page.html不与主窗⼝在同⼀路径下,前⾯应写明路径,绝对路径(http://)和相对路径(../)均可。

⽤单引号和双引号都可以,只是不要混⽤。

这⼀段代码可以加⼊HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执⾏,尤其是页⾯代码长,⼜想使页⾯早点弹出就尽量往前放。

【2、经过设置后的弹出窗⼝】下⾯再说⼀说弹出窗⼝的设置。

只要再往上⾯的代码中加⼀点东西就可以了。

我们来定制这个弹出的窗⼝的外观,尺⼨⼤⼩,弹出的位置以适应该页⾯的具体情况。

<SCRIPT LANGUAGE="javascript"><!--window.open ("page.html, newwindow, height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no")file://写成⼀⾏--></SCRIPT>参数解释:<SCRIPT LANGUAGE="javascript"> js脚本开始;window.open 弹出新窗⼝的命令;page.html 弹出窗⼝的⽂件名;newwindow 弹出窗⼝的名字(不是⽂件名),⾮必须,可⽤空代替;height=100 窗⼝⾼度;width=400 窗⼝宽度;top=0 窗⼝距离屏幕上⽅的象素值;left=0 窗⼝距离屏幕左侧的象素值;toolbar=no 是否显⽰⼯具栏,yes为显⽰;menubar,scrollbars 表⽰菜单栏和滚动栏。

js-cookie的使用domain用法

js-cookie的使用domain用法

js-cookie的使用domain用法JS-Cookie是一个简便易用的JavaScript库,用于在浏览器中设置和获取HTTP cookies。

当我们设置一个cookie时,它会存储在用户的浏览器中,并且每次用户访问网站时都会被发送到服务器。

domain属性用于设置cookie的域名。

通过设置domain属性,我们可以控制cookie在哪些域名下可用。

然而,有时我们希望cookie在跨域名访问时也可用。

这是我们可以使用domain属性。

通过设置cookie的domain属性,我们可以指定cookie在多个域名下可用。

下面是JS-Cookie的用法示例:```javascript// 设置cookie// 获取cookievar value = Cookies.get('name');``````javascript// 设置cookie在所有子域名下可用```需要注意的是,当我们设置domain属性时,需要确保它与当前网站的域名匹配。

否则,浏览器会忽略这个cookie。

另外,还需要注意的是,使用domain属性设置的cookie并不是绝对安全的。

因为当我们指定一个较大的域名范围时,其他网站也可以访问该cookie。

因此,我们应该谨慎使用domain属性,确保我们只将cookie设置为在需要的域名下可用。

总结:- 通过设置domain属性,我们可以控制cookie在哪些域名下可用。

- 可以使用具体的域名,或者使用通配符来设置domain属性。

- 使用domain属性时要确保与当前网站的域名匹配。

- 谨慎使用domain属性,确保cookie只在需要的域名下可用。

jquery设置cookie、删除cookie、获取cookie

jquery设置cookie、删除cookie、获取cookie

jquery设置cookie、删除cookie、获取cookie1.引⼊jquery.js<script src="///jquery/1.12.4/jquery.js"></script>2.引⼊jquery cookie插件<script src="///jquery-cookie/1.4.1/jquery.cookie.min.js"></script>3.调⽤插件封装好的⽅法a)设置新的cookie:$.cookie('name','dumplings'); //设置⼀个值为'dumplings'的cookie设置cookie的⽣命周期$.cookie('key', 'value', { expires: 7 }); //设置为7天,默认值:浏览器关闭设置cookie的域名:$.cookie('name','dumplings', {domain:''}); //设置⼀个值为'dumplings'的在域名''的cookie设置cookie的路径:$.cookie('name','dumplings', {domain:'',path:'/'});//设置⼀个值为'dumplings'的在域名''的路径为'/'的cookieb)删除cookie$.removeCookie('name',{ path: '/'}); //path为指定路径,直接删除该路径下的cookie$.cookie('name',null,{ path: '/'}); //将cookie名为‘openid’的值设置为空,实际已删除c)获取cookie$.cookie('name') //dumplings踩过的坑:cookie的域名和路径都很重要,如果没有设置成⼀致,则会有不同域名下或者不同路径下的同名cookie,为了避免这种情况,建议在设置cookie和删除cookie的时候,配置路径和域名。

js获取cookie值的方法

js获取cookie值的方法

js获取cookie值的方法JavaScript获取cookie值的方法。

在Web开发中,我们经常需要使用cookie来存储和获取用户的信息。

而JavaScript作为前端开发的重要工具,也提供了多种方法来获取cookie的值。

本文将介绍几种常用的JavaScript获取cookie值的方法,希望能对你有所帮助。

方法一,使用document.cookie。

JavaScript中最简单的获取cookie值的方法就是使用document.cookie属性。

该属性返回当前文档的所有cookie,格式为键值对的字符串,我们可以通过解析字符串来获取特定的cookie值。

示例代码如下:```javascript。

function getCookie(name) {。

var cookieArr = document.cookie.split("; ");for (var i = 0; i < cookieArr.length; i++) {。

var arr = cookieArr[i].split("=");if (arr[0] === name) {。

return arr[1];}。

}。

return "";var username = getCookie("username");console.log(username);```。

方法二,使用正则表达式。

除了使用split方法来解析document.cookie字符串外,我们还可以使用正则表达式来获取特定的cookie值。

这种方法通常更灵活,能够更精确地匹配cookie名称。

示例代码如下:```javascript。

function getCookie(name) {。

var reg = new RegExp("(^| )"+name+"=([^;])(;|$)");var arr = document.cookie.match(reg);if (arr) {。

JAVA操作COOKIE

JAVA操作COOKIE

JAVA操作COOKIE 收藏1.设置CookieCookie cookie = new Cookie("key", "value");cookie.setMaxAge(60);设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。

cookie.setPath("/test/test2");设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servlet的url-pattern路径部分)response.addCookie(cookie);2.读取Cookie该方法可以读取当前路径以及“直接父路径”的所有Cookie对象,如果没有任何Cookie 的话,则返回nullCookie[] cookies = request.getCookies();3.删除CookieCookie cookie = new Cookie("key", null);cookie.setMaxAge(0);设置为0为立即删除该Cookiecookie.setPath("/test/test2");删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookieresponse.addCookie(cookie);4.修改CookieCookie[] cookies=request.getCookies();if(cookies.length>1){for(int i=0;i<cookies.length;i++){if(cookies[i].getName().equals("key")) {String oldValue = cookies[i].getValue();String newValue= "newValue";cookies[i].setValue(newValue);response.addCookie(cookies[i]);break;}}}===============================================================1.实现两个网站和共用Cookies2.添加CookiesCookie cookie = new Cookie("name", "wangwz");cookie.setPath("/");//这个要设置cookie.setDomain("");//这个也要设置才能实现上面的两个网站共用cookie.setMaxAge(365*24*60*60);//不设置的话,则cookies不写入硬盘,而是写在内存,只在当前页面有用,以秒为单位response.addCookie(cookie);cookie = new Cookie("nick", URLEncoder.encode("王伟宗","UTF-8"));cookie.setPath("/");cookie.setDomain("");cookie.setMaxAge(365*24*60*60);response.addCookie(cookie);3.获取cookiesCookie cookies[] = request.getCookies();if (cookies != null){for (int i = 0; i < cookies.length; i++){if (cookies[i].getName().equals("nick")){System.out.println(URLDecoder.decode(cookies[i].getValue(),"UTF-8"));}}}4.删除cookiesCookie cookies[] = request.getCookies();if (cookies != null){for (int i = 0; i < cookies.length; i++){if (cookies[i].getName().equals("nick")){Cookie cookie = new Cookie("nick","");//这边得用"",不能用nullcookie.setPath("/");//设置成跟写入cookies一样的cookie.setDomain("");//设置成跟写入cookies一样的response.addCookie(cookie);}}}================================================================================================================应用实例<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %><%@ page import=".URLDecoder" %> //注意导入此包<%Cookie cookie=new Cookie("hi","welcome");response.addCookie(cookie);Cookie[] cookies=request.getCookies();if(cookies!=null){for(int i=0;i<cookies.length;i++){if(cookies[i].getName().equals("hi")){String cookieValue=URLDecoder.decode(cookies[i].getValue(),"utf-8");out.print("hi="+cookieValue);}}}else{out.print(" no cookie");}%>Javascript操纵Cookie实现购物车程序2008-04-29 22:04Name 购物车Version 1.1Author Vanni(凡林) url: QQ:303590170 CreateDate 2005-05-31Description此类是基于JavaScript和客户端Cookie,请保证客户端开启Cookie数据保持(默认24*30小时)可以通过 this.expire=? 小时来指定类中两自带的两个对象 typeObj 和 proObj 均有两个相同属性名: name 和value类中数据存储形式如下-----------------------------------Array(new typeObj('汽车',array(new porObj('三菱',200),new proObj('本田',500))),new typeObj('蛋',array(new proObj('鸡蛋',10),new proObj('鸭蛋',20))}Cookie 存取形式为[使用escape()函数加密过]--------------购物车名 = 汽车#三菱:200|本田:500,蛋#鸡蛋:10|鸭蛋:20注意:客户端存Cookie时,不会出现问题。

JS浏览器cookie的设置,读取,删除

JS浏览器cookie的设置,读取,删除

JS浏览器cookie的设置,读取,删除JavaScript是运⾏在客户端的脚本,因此⼀般是不能够设置Session的,因为Session是运⾏在服务器端的。

⽽cookie是运⾏在客户端的,所以可以⽤JS来设置cookie.假设有这样⼀种情况,在某个⽤例流程中,由A页⾯跳⾄B页⾯,若在A页⾯中采⽤JS⽤变量temp保存了某⼀变量的值,在B页⾯的时候,同样需要使⽤JS来引⽤temp的变量值,对于JS中的全局变量或者静态变量的⽣命周期是有限的,当发⽣页⾯跳转或者页⾯关闭的时候,这些变量的值会重新载⼊,即没有达到保存的效果。

解决这个问题的最好的⽅案是采⽤cookie来保存该变量的值,那么如何来设置和读取cookie 呢?⾸先需要稍微了解⼀下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。

各个cookie之间⼀般是以“;”分隔。

<!doctype html><html><head><meta charset="UTF-8"><title>关于Cookie</title><script>/*cookie:存储数据,当⽤户访问了某个⽹站(⽹页)的时候,我们就可以通过cookie来像访问者电脑上存储数据;1、不同的浏览器存放的cookie位置不⼀样,也是不能通⽤的;2、cookie的存储是以域名的⽅式进⾏区分的;3、cookie的数据是可以设置名字的,=Jack4、⼀个域名下存放的cookie的个数是有限制的,不同浏览器存放的个数不⼀样;5、每个cookie存放的内容⼤⼩也是限制的,不同的浏览器存放⼤⼩限制不⼀样;我们通过document.cookie来获取当前⽹站下的cookie的时候,得到的是字符串的形式的值,它包含了当前⽹站下的所有cookie,它会把所有cookie通过⼀个分号+空格的形式串联起来。

vue项目中js-cookie的使用存储token操作

vue项目中js-cookie的使用存储token操作

vue项⽬中js-cookie的使⽤存储token操作1、安装js-cookie# npm install js-cookie --save# yarn add js-cookie2、引⽤(需要的⽂件)import Cookies from 'js-cookie'const TokenKey = 'Admin-Token'export function getToken() {return Cookies.get(TokenKey)}export function setToken(tcuncuoken) {return Cookies.set(TokenKey, token)}export function removeToken() {return Cookies.remove(TokenKey)}3、浏览器cookie4、也可以存储其他const user = {name: 'lia',age: 18}Cookies.set('user', user)const liaUser = JSON.parse(Cookies.get('user'))补充知识:vue 实现记住密码功能,⽤户信息在客户端加密存储效果图:功能详解:⽤户登录时,勾选记住密码,系统会将登录信息存⼊浏览器cookie中,下次登录时系统会⾃动将信息回写在输⼊框中(默认设置保存时间为3天,此处需要将密码进⾏加密处理,以提⾼安全性)1.定义页⾯元素,v-model绑定变量2.3.引⼊vue的加密组件 CryptoJS,执⾏这条命令,系统会⾃动安装npm install crypto-js安装成功后,还需在登录页⾯引⼊组件4.定义操作cookie的三个⽅法,后⾯需要⽤到,代码我贴出来/************* Cookie start ***************/clearCookie(cookieName) {var exp = new Date();exp.setTime(exp.getTime() - 1);var cval = this.getCookie(cookieName);if (cval != null) {document.cookie = cookieName + "=" + cval + ";expires=" + exp.toGMTString();}},setCookie(cookieName, value, expiremMinutes) {var exdate = new Date();exdate.setTime(exdate.getTime() + expiremMinutes * 60 * 1000);document.cookie = cookieName + "=" + escape(value) + ((expiremMinutes == null) ? "" : ";expires=" + exdate.toGMTString());},getCookie(cookieName) {if (document.cookie.length > 0) {var c_start = document.cookie.indexOf(cookieName + "=");if (c_start != -1) {c_start = c_start + cookieName.length + 1;var c_end = document.cookie.indexOf(";", c_start);if (c_end == -1)c_end = document.cookie.lengthreturn unescape(document.cookie.substring(c_start, c_end))}}return ""},/*************Cookie end***************/5.在登录⽅法中判断记住密码是否有被勾选,如果有,则需要将账号密码信息存⼊cookie中,没有,则调⽤上⾯的⽅法清除cookie信息,关键步骤我已标记,登录⽅法在下⾯:/************* 登录 start ***************/signIn() {let _this = this;//判断是密码登录还是短信登录if (_this.indexd == 0) {_this.$refs['ruleForm'].validate((valid) => {if (valid) {//定义要存⼊cookie的对象var accountInfo = "";//拿到输⼊框中的密码,使⽤AES加密var pwd = _this.form.pwd;var newPwd = CryptoJS.AES.encrypt(pwd,'secret key 123');//若勾选记住密码if (_this.checked == true) {console.log("选择记住密码,checked == true");accountInfo = _ + "&" + newPwd; //将加密后的密码存⼊cookie对象中_this.setCookie('accountInfo',accountInfo,1440*3); //传⼊账号名,密码,和保存天数3个参数(3天)}else {console.log("清空Cookie");_this.clearCookie('accountInfo'); //清空Cookie}let params = {"username": _,"password": _this.form.pwd,"vCode": _this.form.imgCode,"loginToken": _this.loginToken,};post('/login/login', params).then(function (response) {if (response.data.code == "20000") {sessionStorage.setItem("v-token", response.data.data.token);sessionStorage.setItem("v-menu", JSON.stringify(response.data.data.routers));sessionStorage.setItem("v-user", JSON.stringify(response.data.data.currentUser));//_this.makeRouters(response.data.data.routers);_this.$message({message: '登录成功',type: 'success'});_this.clearCookie("login_token");//清除token//平台if (response.data.data.currentUser.type == 0) {//平台_this.$router.push('/index');} else if (response.data.data.currentUser.type == 1 || response.data.data.currentUser.type == 3 || response.data.data.currentUser.type == 2) { //渠道商_this.$router.push('/operate');} else {//证券商_this.$router.push('/AoInformationManagement')}} else if (response.data.code == "50000") {_this.$message.warning(response.data.msg);_this.changeCode();}}).catch(function (err) {_this.$message.error(err);_this.changeCode();})}});}}5.选择记住密码,登录系统后,可以在调试模式中查看cookie信息,如图:6.退出系统后,需要判断cookie有⽆账号信息,如果有,则进⾏回写,下⾯是我的⽅法:在钩⼦⽅法中调⽤下⾯的loadAccountInfo回写⽅法//预读取cookie中⽤户信息loadAccountInfo(){let self = this;//admin%26U2FsdGVkX1+/ZtAGWFVi37gNwA7TUZmQM+yazInCPxs%3Dlet accountInfo = self.getCookie('accountInfo');//如果cookie⾥没有账号信息if(Boolean(accountInfo) == false){console.log('cookie中没有检测到⽤户账号信息!');return false;} else{//如果cookie⾥有账号信息console.log('cookie中检测到账号信息!现在开始预填写!');let userName = "";let passWord = "";let index = accountInfo.indexOf("&");userName = accountInfo.substring(0,index);passWord = accountInfo.substring(index+1); //拿到加密后的密码//解密var bytes = CryptoJS.AES.decrypt(passWord.toString(),'secret key 123');//拿到解密后的密码(登录时输⼊的密码)var newpassWord = bytes.toString(CryptoJS.enc.Utf8); = userName;self.form.pwd = newpassWord;self.checked = true;}},7.最后效果就是这样以上这篇vue项⽬中js-cookie的使⽤存储token操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

js cookie写法 -回复

js cookie写法 -回复

js cookie写法-回复如何使用JavaScript 中的cookie在Web 开发过程中,cookie 是一种在客户端存储数据的方式,它可以在客户端和服务器之间传递信息。

JavaScript 提供了许多操作cookie 的方法,本文将一步一步地回答如何使用JavaScript 中的cookie。

步骤一:设置cookie在JavaScript 中,我们可以使用`document.cookie` 来设置cookie。

cookie 是一个字符串,包含多个键值对。

下面是一个设置cookie 的示例代码:javascriptdocument.cookie = "username=John Doe";在上面的代码中,我们设置了一个名为`username` 的cookie,其值为`John Doe`。

请注意,这个cookie 是在当前域名下创建的。

步骤二:获取cookie要获取cookie 的值,我们可以使用`document.cookie` 来获取当前域名下的所有cookie。

下面是一个获取cookie 值的示例代码:javascriptvar cookies = document.cookie;console.log(cookies);在上面的代码中,我们将所有的cookie 存储在`cookies` 变量中,并将其打印到控制台。

步骤三:设置cookie 过期时间默认情况下,cookie 是在浏览器关闭时过期。

但是,我们可以通过设置`expires` 属性来指定cookie 的过期时间。

下面是一个设置cookie 过期时间的示例代码:javascriptvar d = new Date();d.setTime(d.getTime() + (7 * 24 * 60 * 60 * 1000));var expires = "expires=" + d.toUTCString();document.cookie = "username=John Doe;" + expires;在上面的代码中,我们创建了一个`Date` 对象并将其时间设置为当前时间加上七天。

js获取指定 cookie的方法

js获取指定 cookie的方法

一、概述在Web开发过程中,经常会涉及到对cookie的操作。

cookie是服务器存储在用户计算机上的小型文本文件,它包含有关用户访问全球信息站的信息。

在JavaScript中,我们经常需要获取特定的cookie值以便进行相关操作。

本文将介绍如何使用JavaScript获取特定cookie 的值。

二、使用document.cookie获取所有cookie在JavaScript中,我们可以使用document对象的cookie属性来获取所有的cookie。

该属性将返回文档中所有的cookie信息,以字符串的形式返回。

可以通过解析该字符串来获取特定cookie的值。

下面是一个简单的示例代码:```var allCookies = document.cookie;console.log(allCookies);```该代码将打印出所有的cookie信息,例如"cookie1=value1; cookie2=value2; cookie3=value3;"。

我们可以使用字符串操作方法来获取特定cookie的值。

三、使用函数获取特定cookie的值为了方便起见,我们可以使用一个函数来获取特定cookie的值。

下面是一个获取特定cookie值的示例代码:```function getCookie(cookieName) {var name = cookieName + "=";var decodedCookie =decodeURIComponent(document.cookie);var cookieArray = decodedCookie.split(';');for (var i = 0; i < cookieArray.length; i++) {var cookie = cookieArray[i];while (cookie.charAt(0) == ' ') {cookie = cookie.substring(1);}if (cookie.indexOf(name) == 0) {return cookie.substring(name.length, cookie.length);}}return "";}var cookieValue = getCookie("cookieName");console.log(cookieValue);```该代码定义了一个名为getCookie的函数,该函数接受一个参数cookieName,并返回对应cookie的值。

vue中使用cookies和crypto-js实现记住密码和加密的方法

vue中使用cookies和crypto-js实现记住密码和加密的方法

vue中使⽤cookies和crypto-js实现记住密码和加密的⽅法使⽤crypto-js加解密第⼀步,安装npm install crypto-js第⼆步,在你需要的vue组件内importimport CryptoJS from "crypto-js";第三步,使⽤// Encrypt 加密var cipherText = CryptoJS.AES.encrypt("my message","secretkey123").toString();console.log(cipherText)// Decrypt 解密var bytes = CryptoJS.AES.decrypt(cipherText, "secretkey123");var originalText = bytes.toString(CryptoJS.enc.Utf8);console.log(originalText); // 'my message'注意这个mymessage是字符串,如果你要加密的⽤户id(number类型)得先转成字符串更多使⽤请访问记住密码实现原理是登录的时候,如果勾选了记住密码(把‘记住密码'状态保存到localstorage)就保存账号密码到cookies;之后进⼊登录页⾯的时候,判断是否记住了密码(从localstorage判断),如果记住密码则导出cookies到表单;其中保存使⽤setcookie⽅法,取出则使⽤getcookie⽅法。

ok,我们来编写⽅法//设置cookiesetCookie(portId, psw, exdays) {// Encrypt,加密账号密码var cipherPortId = CryptoJS.AES.encrypt(portId+'',"secretkey123").toString();var cipherPsw = CryptoJS.AES.encrypt(psw+'', "secretkey123").toString();console.log(cipherPortId+'/'+cipherPsw)//打印⼀下看看有没有加密成功var exdate = new Date(); //获取时间exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //保存的天数//字符串拼接cookie,为什么这⾥⽤了==,因为加密后的字符串也有个=号,影响下⾯getcookie的字符串切割,你也可以使⽤更炫酷的符号。

vue3的usecookie封装步骤

vue3的usecookie封装步骤

要封装一个在Vue 3项目中使用Cookie的自定义功能,你可以创建一个自定义Vue Composition API函数,让你能够在组件中轻松地使用Cookie。

下面是封装步骤:1. 创建一个新的JavaScript文件,例如`useCookie.js`,以保存你的Cookie封装功能。

2. 在`useCookie.js`中导入`vue`和`js-cookie`库(确保你已经安装了`js-cookie`库):```javascriptimport { ref } from 'vue';import Cookies from 'js-cookie';```3. 创建一个函数来定义你的Cookie功能。

你可以包括设置、获取和删除Cookie的方法。

以下是一个示例:```javascriptexport function useCookie() {// 设置Cookiefunction setCookie(key, value, options = {}) {Cookies.set(key, value, options);}// 获取Cookiefunction getCookie(key) {return Cookies.get(key);}// 删除Cookiefunction deleteCookie(key) {Cookies.remove(key);}return {setCookie,getCookie,deleteCookie};}```4. 导出你的Cookie功能:```javascriptexport default useCookie;```5. 现在,在你的Vue 3组件中,你可以导入并使用`useCookie`功能。

首先,确保你已经安装了Vue 3 Composition API插件:```bashnpm install @vue/composition-api```6. 在组件中使用`useCookie`功能:```javascript<template><div><button @click="setMyCookie">Set Cookie</button><button @click="getMyCookie">Get Cookie</button><button @click="deleteMyCookie">Delete Cookie</button></div></template><script>import { ref } from 'vue';import useCookie from './useCookie';export default {setup() {const { setCookie, getCookie, deleteCookie } = useCookie();function setMyCookie() {setCookie('myCookie', 'Hello, Cookie!', { expires: 7 }); // 设置Cookie,有效期7天}function getMyCookie() {const cookieValue = getCookie('myCookie');console.log('Cookie Value:', cookieValue);}function deleteMyCookie() {deleteCookie('myCookie');console.log('Cookie Deleted');}return {setMyCookie,getMyCookie,deleteMyCookie};}};</script>```以上是一个简单的Vue 3组件,展示了如何使用自定义`useCookie`功能来设置、获取和删除Cookie。

js中的cookie使用

js中的cookie使用

js中的cookie使⽤在⽹上找到的资料,收藏⼀下1function getCookies(name)2 {3var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));4if(arr != null) return unescape(arr[2]); return '';5 }6function setCookie(name, value, expires, path, domain, secure)7 {8var liveDate = new Date();9 expires = liveDate.setTime(liveDate.getTime() + expires*60*1000);//毫秒10//expires = new Date((new Date()).getTime() + expires * 60000);//按分钟11 document.cookie = name + "=" + escape (value) +12 ((expires) ? "; expires=" + expires : "") +13 ((path) ? "; path=" + path : "") +14 ((domain) ? "; domain=" + domain : "") +15 ((secure) ? "; secure" : "");16 }以下⽹上找的资料:—————————————————js cookie总结最近需要⽤FSO操作⽂件,有这样⼀个需求,⽤js操纵cookie保存⽤户上次⼀打开⽂件的路径,发现⽤js操作cookie和⽤服务器语⾔操作 cookie有⼀些差异,还有很多⼩的细节需要注意,如果运⽤不得当会引发很多不可预料的结果。

js之清除Cookie

js之清除Cookie

js之清除Cookie 最近新的系统开发⽤的是Cookie存储⽤户信息,使⽤des加密⼯具类如下所⽰:/*** Copyright (c) 2013-Now All rights reserved.*/package mon.utils;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;/*** DES加密解密⼯具* 加密:DesUtils.encode("admin","1,2,3");* 解密:DesUtils.decode("012C2C9BA925FAF8045B2FD9B02A2664","1,2,3");* @author ThinkGem*/public class DesUtils {private static DesCore desCore = new DesCore();/*** DES加密(secretKey代表3个key,⽤逗号分隔)*/public static String encode(String data, String secretKey) {if (StringUtils.isBlank(data)){return "";}String[] ks = StringUtils.split(secretKey, ",");if (ks.length >= 3){return desCore.strEnc(data, ks[0], ks[1], ks[2]);}return desCore.strEnc(data, secretKey, "", "");}/*** DES解密(secretKey代表3个key,⽤逗号分隔)*/public static String decode(String data, String secretKey) {if (StringUtils.isBlank(data)){return "";}String[] ks = StringUtils.split(secretKey, ",");if (ks.length >= 3){return desCore.strDec(data, ks[0], ks[1], ks[2]);}return desCore.strDec(data, secretKey, "", "");}/*** DES加密/解密* @Copyright Copyright (c) 2006* @author Guapo*/@SuppressWarnings({"rawtypes","unused","unchecked"})static class DesCore {/** encrypt the string to string made up of hex return the encrypted string*/public String strEnc(String data, String firstKey, String secondKey, String thirdKey) {int leng = data.length();String encData = "";List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null;int firstLength = 0, secondLength = 0, thirdLength = 0;if (firstKey != null && firstKey != "") {firstKeyBt = getKeyBytes(firstKey);firstLength = firstKeyBt.size();}if (secondKey != null && secondKey != "") {secondKeyBt = getKeyBytes(secondKey);secondLength = secondKeyBt.size();}thirdLength = thirdKeyBt.size();}if (leng > 0) {if (leng < 4) {int[] bt = strToBt(data);int[] encByte = null;if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "" && thirdKey != null && thirdKey != "") {int[] tempBt;int x, y, z;tempBt = bt;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}for (z = 0; z < thirdLength; z++) {tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z));}encByte = tempBt;} else {if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "") {int[] tempBt;int x, y;tempBt = bt;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}encByte = tempBt;} else {if (firstKey != null && firstKey != "") {int[] tempBt;int x = 0;tempBt = bt;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}encByte = tempBt;}}}encData = bt64ToHex(encByte);} else {int iterator = (leng / 4);int remainder = leng % 4;int i = 0;for (i = 0; i < iterator; i++) {String tempData = data.substring(i * 4 + 0, i * 4 + 4);int[] tempByte = strToBt(tempData);int[] encByte = null;if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "" && thirdKey != null && thirdKey != "") {int[] tempBt;int x, y, z;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}for (z = 0; z < thirdLength; z++) {tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z));}encByte = tempBt;} else {if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "") {int[] tempBt;int x, y;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}encByte = tempBt;} else {if (firstKey != null && firstKey != "") {int[] tempBt;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}encByte = tempBt;}}}encData += bt64ToHex(encByte);}if (remainder > 0) {String remainderData = data.substring(iterator * 4 + 0, leng);int[] tempByte = strToBt(remainderData);int[] encByte = null;if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "" && thirdKey != null && thirdKey != "") {int[] tempBt;int x, y, z;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}for (z = 0; z < thirdLength; z++) {tempBt = enc(tempBt, (int[]) thirdKeyBt.get(z));}encByte = tempBt;} else {if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "") {int[] tempBt;int x, y;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}for (y = 0; y < secondLength; y++) {tempBt = enc(tempBt, (int[]) secondKeyBt.get(y));}encByte = tempBt;} else {if (firstKey != null && firstKey != "") {int[] tempBt;int x;tempBt = tempByte;for (x = 0; x < firstLength; x++) {tempBt = enc(tempBt, (int[]) firstKeyBt.get(x));}encByte = tempBt;}}}encData += bt64ToHex(encByte);}}}return encData;}/** decrypt the encrypted string to the original string** return the original string*/public String strDec(String data, String firstKey, String secondKey, String thirdKey) {int leng = data.length();String decStr = "";List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null;int firstLength = 0, secondLength = 0, thirdLength = 0;if (firstKey != null && firstKey != "") {firstKeyBt = getKeyBytes(firstKey);firstLength = firstKeyBt.size();}if (secondKey != null && secondKey != "") {secondKeyBt = getKeyBytes(secondKey);secondLength = secondKeyBt.size();}if (thirdKey != null && thirdKey != "") {thirdKeyBt = getKeyBytes(thirdKey);thirdLength = thirdKeyBt.size();}int iterator = leng / 16;for (i = 0; i < iterator; i++) {String tempData = data.substring(i * 16 + 0, i * 16 + 16);String strByte = hexToBt64(tempData);int[] intByte = new int[64];int j = 0;for (j = 0; j < 64; j++) {intByte[j] = Integer.parseInt(strByte.substring(j, j + 1));}int[] decByte = null;if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "" && thirdKey != null && thirdKey != "") {int[] tempBt;int x, y, z;tempBt = intByte;for (x = thirdLength - 1; x >= 0; x--) {tempBt = dec(tempBt, (int[]) thirdKeyBt.get(x));}for (y = secondLength - 1; y >= 0; y--) {tempBt = dec(tempBt, (int[]) secondKeyBt.get(y));}for (z = firstLength - 1; z >= 0; z--) {tempBt = dec(tempBt, (int[]) firstKeyBt.get(z));}decByte = tempBt;} else {if (firstKey != null && firstKey != "" && secondKey != null && secondKey != "") {int[] tempBt;int x, y, z;tempBt = intByte;for (x = secondLength - 1; x >= 0; x--) {tempBt = dec(tempBt, (int[]) secondKeyBt.get(x));}for (y = firstLength - 1; y >= 0; y--) {tempBt = dec(tempBt, (int[]) firstKeyBt.get(y));}decByte = tempBt;} else {if (firstKey != null && firstKey != "") {int[] tempBt;int x, y, z;tempBt = intByte;for (x = firstLength - 1; x >= 0; x--) {tempBt = dec(tempBt, (int[]) firstKeyBt.get(x));}decByte = tempBt;}}}decStr += byteToString(decByte);}return decStr;}/** chang the string into the bit array** return bit array(it's length % 64 = 0)*/public List getKeyBytes(String key) {List keyBytes = new ArrayList();int leng = key.length();int iterator = (leng / 4);int remainder = leng % 4;int i = 0;for (i = 0; i < iterator; i++) {keyBytes.add(i, strToBt(key.substring(i * 4 + 0, i * 4 + 4)));}if (remainder > 0) {// keyBytes[i] = strToBt(key.substring(i*4+0,leng));keyBytes.add(i, strToBt(key.substring(i * 4 + 0, leng)));}return keyBytes;}/** chang the string(it's length <= 4) into the bit array** return bit array(it's length = 64)*/public int[] strToBt(String str) {int leng = str.length();int[] bt = new int[64];if (leng < 4) {int i = 0, j = 0, p = 0, q = 0;int k = str.charAt(i);for (j = 0; j < 16; j++) {int pow = 1, m = 0;for (m = 15; m > j; m--) {pow *= 2;}// bt.set(16*i+j,""+(k/pow)%2));bt[16 * i + j] = (k / pow) % 2;}}for (p = leng; p < 4; p++) {int k = 0;for (q = 0; q < 16; q++) {int pow = 1, m = 0;for (m = 15; m > q; m--) {pow *= 2;}// bt[16*p+q]=parseInt(k/pow)%2; // bt.add(16*p+q,""+((k/pow)%2)); bt[16 * p + q] = (k / pow) % 2;}}} else {for (int i = 0; i < 4; i++) {int k = str.charAt(i);for (int j = 0; j < 16; j++) {int pow = 1;for (int m = 15; m > j; m--) {pow *= 2;}// bt[16*i+j]=parseInt(k/pow)%2;// bt.add(16*i+j,""+((k/pow)%2));bt[16 * i + j] = (k / pow) % 2;}}}return bt;}/** chang the bit(it's length = 4) into the hex** return hex*/public String bt4ToHex(String binary) {String hex = "";if (binary.equalsIgnoreCase("0000")) {hex = "0";} else if (binary.equalsIgnoreCase("0001")) { hex = "1";} else if (binary.equalsIgnoreCase("0010")) { hex = "2";} else if (binary.equalsIgnoreCase("0011")) { hex = "3";} else if (binary.equalsIgnoreCase("0100")) { hex = "4";} else if (binary.equalsIgnoreCase("0101")) { hex = "5";} else if (binary.equalsIgnoreCase("0110")) { hex = "6";} else if (binary.equalsIgnoreCase("0111")) { hex = "7";} else if (binary.equalsIgnoreCase("1000")) { hex = "8";} else if (binary.equalsIgnoreCase("1001")) { hex = "9";} else if (binary.equalsIgnoreCase("1010")) { hex = "A";} else if (binary.equalsIgnoreCase("1011")) { hex = "B";} else if (binary.equalsIgnoreCase("1100")) { hex = "C";} else if (binary.equalsIgnoreCase("1101")) { hex = "D";} else if (binary.equalsIgnoreCase("1110")) { hex = "E";} else if (binary.equalsIgnoreCase("1111")) { hex = "F";}return hex;}* chang the hex into the bit(it's length = 4) ** return the bit(it's length = 4)*/public String hexToBt4(String hex) {String binary = "";if (hex.equalsIgnoreCase("0")) {binary = "0000";} else if (hex.equalsIgnoreCase("1")) {binary = "0001";}if (hex.equalsIgnoreCase("2")) {binary = "0010";}if (hex.equalsIgnoreCase("3")) {binary = "0011";}if (hex.equalsIgnoreCase("4")) {binary = "0100";}if (hex.equalsIgnoreCase("5")) {binary = "0101";}if (hex.equalsIgnoreCase("6")) {binary = "0110";}if (hex.equalsIgnoreCase("7")) {binary = "0111";}if (hex.equalsIgnoreCase("8")) {binary = "1000";}if (hex.equalsIgnoreCase("9")) {binary = "1001";}if (hex.equalsIgnoreCase("A")) {binary = "1010";}if (hex.equalsIgnoreCase("B")) {binary = "1011";}if (hex.equalsIgnoreCase("C")) {binary = "1100";}if (hex.equalsIgnoreCase("D")) {binary = "1101";}if (hex.equalsIgnoreCase("E")) {binary = "1110";}if (hex.equalsIgnoreCase("F")) {binary = "1111";}return binary;}/** chang the bit(it's length = 64) into the string ** return string*/public String byteToString(int[] byteData) {String str = "";for (int i = 0; i < 4; i++) {int count = 0;for (int j = 0; j < 16; j++) {int pow = 1;for (int m = 15; m > j; m--) {pow *= 2;}count += byteData[16 * i + j] * pow; }if (count != 0) {str += "" + (char) (count);}}return str;}public String bt64ToHex(int[] byteData) {String hex = "";for (int i = 0; i < 16; i++) {String bt = "";bt += byteData[i * 4 + j];}hex += bt4ToHex(bt);}return hex;}public String hexToBt64(String hex) {String binary = "";for (int i = 0; i < 16; i++) {binary += hexToBt4(hex.substring(i, i + 1));}return binary;}/** the 64 bit des core arithmetic*/public int[] enc(int[] dataByte, int[] keyByte) {int[][] keys = generateKeys(keyByte);int[] ipByte = initPermute(dataByte);int[] ipLeft = new int[32];int[] ipRight = new int[32];int[] tempLeft = new int[32];int i = 0, j = 0, k = 0, m = 0, n = 0;for (k = 0; k < 32; k++) {ipLeft[k] = ipByte[k];ipRight[k] = ipByte[32 + k];}for (i = 0; i < 16; i++) {for (j = 0; j < 32; j++) {tempLeft[j] = ipLeft[j];ipLeft[j] = ipRight[j];}int[] key = new int[48];for (m = 0; m < 48; m++) {key[m] = keys[i][m];}int[] tempRight = xor(pPermute(sBoxPermute(xor(expandPermute(ipRight), key))), tempLeft);for (n = 0; n < 32; n++) {ipRight[n] = tempRight[n];}}int[] finalData = new int[64];for (i = 0; i < 32; i++) {finalData[i] = ipRight[i];finalData[32 + i] = ipLeft[i];}return finallyPermute(finalData);}public int[] dec(int[] dataByte, int[] keyByte) {int[][] keys = generateKeys(keyByte);int[] ipByte = initPermute(dataByte);int[] ipLeft = new int[32];int[] ipRight = new int[32];int[] tempLeft = new int[32];int i = 0, j = 0, k = 0, m = 0, n = 0;for (k = 0; k < 32; k++) {ipLeft[k] = ipByte[k];ipRight[k] = ipByte[32 + k];}for (i = 15; i >= 0; i--) {for (j = 0; j < 32; j++) {tempLeft[j] = ipLeft[j];ipLeft[j] = ipRight[j];}int[] key = new int[48];for (m = 0; m < 48; m++) {key[m] = keys[i][m];}int[] tempRight = xor(pPermute(sBoxPermute(xor(expandPermute(ipRight), key))), tempLeft);for (n = 0; n < 32; n++) {ipRight[n] = tempRight[n];}}int[] finalData = new int[64];for (i = 0; i < 32; i++) {finalData[32 + i] = ipLeft[i];}return finallyPermute(finalData);}public int[] initPermute(int[] originalData) {int[] ipByte = new int[64];int i = 0, m = 1, n = 0, j, k;for (i = 0, m = 1, n = 0; i < 4; i++, m += 2, n += 2) {for (j = 7, k = 0; j >= 0; j--, k++) {ipByte[i * 8 + k] = originalData[j * 8 + m];ipByte[i * 8 + k + 32] = originalData[j * 8 + n];}}return ipByte;}public int[] expandPermute(int[] rightData) {int[] epByte = new int[48];int i, j;for (i = 0; i < 8; i++) {if (i == 0) {epByte[i * 6 + 0] = rightData[31];} else {epByte[i * 6 + 0] = rightData[i * 4 - 1];}epByte[i * 6 + 1] = rightData[i * 4 + 0];epByte[i * 6 + 2] = rightData[i * 4 + 1];epByte[i * 6 + 3] = rightData[i * 4 + 2];epByte[i * 6 + 4] = rightData[i * 4 + 3];if (i == 7) {epByte[i * 6 + 5] = rightData[0];} else {epByte[i * 6 + 5] = rightData[i * 4 + 4];}}return epByte;}public int[] xor(int[] byteOne, int[] byteTwo) {// var xorByte = new Array(byteOne.length);// for(int i = 0;i < byteOne.length; i ++){// xorByte[i] = byteOne[i] ^ byteTwo[i];// }// return xorByte;int[] xorByte = new int[byteOne.length];for (int i = 0; i < byteOne.length; i++) {xorByte[i] = byteOne[i] ^ byteTwo[i];}return xorByte;}public int[] sBoxPermute(int[] expandByte) {// var sBoxByte = new Array(32);int[] sBoxByte = new int[32];String binary = "";int[][] s1 = { { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 }, { 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 }, { 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 }, { 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 } };/* Table - s2 */int[][] s2 = { { 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 }, { 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 }, { 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 }, { 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 } };/* Table - s3 */int[][] s3 = { { 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 }, { 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 }, { 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 }, { 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 } };/* Table - s4 */int[][] s4 = { { 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 }, { 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 }, { 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 }, { 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 } };/* Table - s5 */int[][] s5 = { { 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 }, { 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 }, { 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 }, { 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 } };/* Table - s6 */int[][] s6 = { { 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 }, { 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 }, { 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 }, { 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 } };/* Table - s7 */int[][] s7 = { { 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 }, { 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 }, { 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 }, { 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 } };int[][] s8 = { { 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 }, { 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 },{ 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 }, { 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 } };for (int m = 0; m < 8; m++) {int i = 0, j = 0;i = expandByte[m * 6 + 0] * 2 + expandByte[m * 6 + 5];j = expandByte[m * 6 + 1] * 2 * 2 * 2 + expandByte[m * 6 + 2] * 2 * 2 + expandByte[m * 6 + 3] * 2 + expandByte[m * 6 + 4];switch (m) {case 0:binary = getBoxBinary(s1[i][j]);break;case 1:binary = getBoxBinary(s2[i][j]);break;case 2:binary = getBoxBinary(s3[i][j]);break;case 3:binary = getBoxBinary(s4[i][j]);break;case 4:binary = getBoxBinary(s5[i][j]);break;case 5:binary = getBoxBinary(s6[i][j]);break;case 6:binary = getBoxBinary(s7[i][j]);break;case 7:binary = getBoxBinary(s8[i][j]);break;}sBoxByte[m * 4 + 0] = Integer.parseInt(binary.substring(0, 1));sBoxByte[m * 4 + 1] = Integer.parseInt(binary.substring(1, 2));sBoxByte[m * 4 + 2] = Integer.parseInt(binary.substring(2, 3));sBoxByte[m * 4 + 3] = Integer.parseInt(binary.substring(3, 4));}return sBoxByte;}public int[] pPermute(int[] sBoxByte) {int[] pBoxPermute = new int[32];pBoxPermute[0] = sBoxByte[15];pBoxPermute[1] = sBoxByte[6];pBoxPermute[2] = sBoxByte[19];pBoxPermute[3] = sBoxByte[20];pBoxPermute[4] = sBoxByte[28];pBoxPermute[5] = sBoxByte[11];pBoxPermute[6] = sBoxByte[27];pBoxPermute[7] = sBoxByte[16];pBoxPermute[8] = sBoxByte[0];pBoxPermute[9] = sBoxByte[14];pBoxPermute[10] = sBoxByte[22];pBoxPermute[11] = sBoxByte[25];pBoxPermute[12] = sBoxByte[4];pBoxPermute[13] = sBoxByte[17];pBoxPermute[14] = sBoxByte[30];pBoxPermute[15] = sBoxByte[9];pBoxPermute[16] = sBoxByte[1];pBoxPermute[17] = sBoxByte[7];pBoxPermute[18] = sBoxByte[23];pBoxPermute[19] = sBoxByte[13];pBoxPermute[20] = sBoxByte[31];pBoxPermute[21] = sBoxByte[26];pBoxPermute[22] = sBoxByte[2];pBoxPermute[23] = sBoxByte[8];pBoxPermute[24] = sBoxByte[18];pBoxPermute[25] = sBoxByte[12];pBoxPermute[26] = sBoxByte[29];pBoxPermute[27] = sBoxByte[5];pBoxPermute[28] = sBoxByte[21];pBoxPermute[29] = sBoxByte[10];pBoxPermute[30] = sBoxByte[3];pBoxPermute[31] = sBoxByte[24];return pBoxPermute;}public int[] finallyPermute(int[] endByte) {int[] fpByte = new int[64];fpByte[0] = endByte[39];fpByte[1] = endByte[7];fpByte[2] = endByte[47];fpByte[4] = endByte[55];fpByte[5] = endByte[23];fpByte[6] = endByte[63];fpByte[7] = endByte[31];fpByte[8] = endByte[38];fpByte[9] = endByte[6];fpByte[10] = endByte[46];fpByte[11] = endByte[14];fpByte[12] = endByte[54];fpByte[13] = endByte[22];fpByte[14] = endByte[62];fpByte[15] = endByte[30];fpByte[16] = endByte[37];fpByte[17] = endByte[5];fpByte[18] = endByte[45];fpByte[19] = endByte[13];fpByte[20] = endByte[53];fpByte[21] = endByte[21];fpByte[22] = endByte[61];fpByte[23] = endByte[29];fpByte[24] = endByte[36];fpByte[25] = endByte[4];fpByte[26] = endByte[44];fpByte[27] = endByte[12];fpByte[28] = endByte[52];fpByte[29] = endByte[20];fpByte[30] = endByte[60];fpByte[31] = endByte[28];fpByte[32] = endByte[35];fpByte[33] = endByte[3];fpByte[34] = endByte[43];fpByte[35] = endByte[11];fpByte[36] = endByte[51];fpByte[37] = endByte[19];fpByte[38] = endByte[59];fpByte[39] = endByte[27];fpByte[40] = endByte[34];fpByte[41] = endByte[2];fpByte[42] = endByte[42];fpByte[43] = endByte[10];fpByte[44] = endByte[50];fpByte[45] = endByte[18];fpByte[46] = endByte[58];fpByte[47] = endByte[26];fpByte[48] = endByte[33];fpByte[49] = endByte[1];fpByte[50] = endByte[41];fpByte[51] = endByte[9];fpByte[52] = endByte[49];fpByte[53] = endByte[17];fpByte[54] = endByte[57];fpByte[55] = endByte[25];fpByte[56] = endByte[32];fpByte[57] = endByte[0];fpByte[58] = endByte[40];fpByte[59] = endByte[8];fpByte[60] = endByte[48];fpByte[61] = endByte[16];fpByte[62] = endByte[56];fpByte[63] = endByte[24];return fpByte;}public String getBoxBinary(int i) { String binary = "";switch (i) {case 0:binary = "0000";break;case 1:binary = "0001";break;case 2:binary = "0010";break;case 3:binary = "0011";break;case 4:binary = "0100";break;case 5:binary = "0101";case 6:binary = "0110";break;case 7:binary = "0111";break;case 8:binary = "1000";break;case 9:binary = "1001";break;case 10:binary = "1010";break;case 11:binary = "1011";break;case 12:binary = "1100";break;case 13:binary = "1101";break;case 14:binary = "1110";break;case 15:binary = "1111";break;}return binary;}/** generate 16 keys for xor*/public int[][] generateKeys(int[] keyByte) {int[] key = new int[56];int[][] keys = new int[16][48];// keys[ 0] = new Array();// keys[ 1] = new Array();// keys[ 2] = new Array();// keys[ 3] = new Array();// keys[ 4] = new Array();// keys[ 5] = new Array();// keys[ 6] = new Array();// keys[ 7] = new Array();// keys[ 8] = new Array();// keys[ 9] = new Array();// keys[10] = new Array();// keys[11] = new Array();// keys[12] = new Array();// keys[13] = new Array();// keys[14] = new Array();// keys[15] = new Array();int[] loop = new int[] { 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 };for (int i = 0; i < 7; i++) {for (int j = 0, k = 7; j < 8; j++, k--) {key[i * 8 + j] = keyByte[8 * k + i];}}int i = 0;for (i = 0; i < 16; i++) {int tempLeft = 0;int tempRight = 0;for (int j = 0; j < loop[i]; j++) {tempLeft = key[0];tempRight = key[28];for (int k = 0; k < 27; k++) {key[k] = key[k + 1];key[28 + k] = key[29 + k];}key[27] = tempLeft;key[55] = tempRight;}// var tempKey = new Array(48);int[] tempKey = new int[48];tempKey[0] = key[13];tempKey[1] = key[16];tempKey[2] = key[10];tempKey[3] = key[23];tempKey[4] = key[0];tempKey[5] = key[4];tempKey[6] = key[2];tempKey[7] = key[27];tempKey[8] = key[14];tempKey[9] = key[5];tempKey[10] = key[20];tempKey[11] = key[9];tempKey[12] = key[22];tempKey[13] = key[18];tempKey[14] = key[11];tempKey[15] = key[3];tempKey[16] = key[25];tempKey[17] = key[7];tempKey[18] = key[15];tempKey[19] = key[6];tempKey[20] = key[26];tempKey[21] = key[19];tempKey[22] = key[12];tempKey[23] = key[1];tempKey[24] = key[40];tempKey[25] = key[51];tempKey[26] = key[30];tempKey[27] = key[36];tempKey[28] = key[46];tempKey[29] = key[54];tempKey[30] = key[29];tempKey[31] = key[39];tempKey[32] = key[50];tempKey[33] = key[44];tempKey[34] = key[32];tempKey[35] = key[47];tempKey[36] = key[43];tempKey[37] = key[48];tempKey[38] = key[38];tempKey[39] = key[55];tempKey[40] = key[33];tempKey[41] = key[52];tempKey[42] = key[45];tempKey[43] = key[41];tempKey[44] = key[49];tempKey[45] = key[35];tempKey[46] = key[28];tempKey[47] = key[31];int m;switch (i) {case 0:for (m = 0; m < 48; m++) { keys[0][m] = tempKey[m]; }break;case 1:for (m = 0; m < 48; m++) { keys[1][m] = tempKey[m]; }break;case 2:for (m = 0; m < 48; m++) { keys[2][m] = tempKey[m]; }break;case 3:for (m = 0; m < 48; m++) { keys[3][m] = tempKey[m]; }break;case 4:for (m = 0; m < 48; m++) { keys[4][m] = tempKey[m]; }break;case 5:for (m = 0; m < 48; m++) { keys[5][m] = tempKey[m]; }break;case 6:for (m = 0; m < 48; m++) { keys[6][m] = tempKey[m]; }break;case 7:for (m = 0; m < 48; m++) {。

JS常用代码大全

JS常用代码大全

document.all.xxx.detachEvent(‘onclick’,a); # 插件数目 navigator.plugins # 取变量类型 typeof($js_libpath) == "undefined" # 下拉框 下拉框.options[索引] 下拉框.options.length # 查找对象 document.getElementsByName("r1"); document.getElementById(id); # 定时 timer=setInterval(‘scrollwindow()’,delay); clearInterval(timer); # UNCODE 编码 escape() ,unescape # 父对象 obj.parentElement(dhtml) obj.parentNode(dom) # 交换表的行 TableID.moveRow(2,1) # 替换 CSS document.all.csss.href = "a.css"; # 并排显示 display:inline # 隐藏焦点 hidefocuseak-all" # 自动刷新
Obj.style.top = event.y-Obj.t; } } function MouseUp() { if(Obj!=null) {
Obj.releaseCapture(); Obj=null; } } </script> 2. <div id="myDiv" src="logo.gif" ondrag="doDrag();" onmouseover="this.style.cursor='hand'" style="position:absolute;left=100;top=100;" onmousedown="doMouseDown();"> <a href="#" onclick="return false"><h1>wlecome</h1></a> </div> <script language="JavaScript" type="text/javascript"> var orgMouseX; var orgMouseY; var orgObjX; var orgObjY; function doDrag() { var myObject=document.all.myDiv;

$.cookie js的用法

$.cookie js的用法

$.cookie js的用法一、概述$.cookie是一款用于操作浏览器的Cookie的工具库,主要用于存储一些用户信息,以便在后续的页面加载中可以读取。

它提供了简单易用的API,可以方便地设置、读取、删除Cookie。

二、基本用法1.设置Cookie:可以使用$.cookie的set方法来设置Cookie,例如:```javascript$.cookie('username','张三');```上述代码将名为'username'的Cookie设置为'张三'。

2.读取Cookie:可以使用$.cookie的get方法来读取Cookie的值,例如:```javascriptvarusername=$.cookie('username');```上述代码将读取名为'username'的Cookie的值,并将其存储在变量username中。

3.删除Cookie:可以使用$.cookie的remove方法来删除Cookie,例如:```javascript$.cookie.remove('username');```上述代码将删除名为'username'的Cookie。

三、选项设置$.cookie提供了丰富的选项设置,可以自定义Cookie的名称、值、过期时间、路径、域等属性。

例如:```javascript$.cookie('username','张三',{expires:7,path:'/'});```上述代码将名为'username'的Cookie设置为'张三',过期时间为7天,路径为当前目录下的所有子目录。

四、跨域设置$.cookie支持跨域设置Cookie,但是需要注意安全问题。

在设置跨域Cookie时,需要确保服务器允许跨域访问Cookie,并且在客户端和服务器之间建立安全的通信通道,以防止XSS攻击等安全问题。

form submit cookie

form submit cookie

form submit cookie(实用版)目录1.表单提交与 Cookie 的关系2.表单提交的原理3.Cookie 的作用和特点4.表单提交与 Cookie 的应用场景5.如何使用 JavaScript 处理表单提交和 Cookie正文在网络开发中,表单提交和 Cookie 是两个常见的概念。

表单提交是指用户在网页上填写表单信息后,将数据发送到服务器的过程。

而 Cookie 是一种存储在用户浏览器中的小型文本文件,用于保存用户的一些信息。

表单提交和 Cookie 之间有着密切的关系,本文将从这两个概念的原理和应用出发,介绍如何使用 JavaScript 处理表单提交和 Cookie。

首先,我们来了解表单提交的原理。

当用户在网页上填写表单信息后,点击提交按钮,浏览器会将表单数据编码成 HTTP 请求,发送到服务器。

服务器接收到请求后,进行相应的处理,然后将处理结果返回给浏览器。

这个过程就是表单提交。

接下来,我们来看看 Cookie 的作用和特点。

Cookie 的主要作用是保存用户的一些信息,以便在后续访问时能够识别用户身份。

Cookie 的特点有以下几点:1.保存在用户的浏览器中,不会随每次 HTTP 请求发送给服务器。

2.可以设置过期时间,当过期后,Cookie 会自动删除。

3.可以通过 JavaScript 编程实现创建、读取、修改和删除。

表单提交与 Cookie 在实际应用中有很多场景,例如用户登录、记住购物车商品等。

在这些场景中,Cookie 可以保存用户的登录状态或购物车信息,以便在后续访问时能够快速加载相应的数据。

如何使用 JavaScript 处理表单提交和 Cookie 呢?这里我们主要介绍两个方法:1.使用 JavaScript 监听表单提交事件。

当用户点击提交按钮时,可以通过 JavaScript 的`addEventListener`方法监听表单的`submit`事件。

js获取cookie值的方法

js获取cookie值的方法

js获取cookie值的方法JavaScript是一种广泛应用于网页开发的脚本语言,它能够实现丰富的交互效果和动态功能。

在网页开发中,我们经常需要获取和操作cookie值,以实现用户登录状态的保持、数据的存储和传递等功能。

本文将介绍几种常用的方法,来实现在JavaScript中获取cookie值的操作。

方法一,使用document.cookie属性。

在JavaScript中,可以通过document.cookie属性来获取当前页面的所有cookie 值。

该属性返回一个字符串,包含所有的cookie值,格式为“key1=value1;key2=value2; key3=value3;...”。

我们可以通过解析这个字符串,来获取特定的cookie值。

例如,我们可以编写一个函数来实现获取指定cookie名称的数值:```javascript。

function getCookie(name) {。

var cookies = document.cookie.split(';');for (var i = 0; i < cookies.length; i++) {。

var cookie = cookies[i].trim();if (cookie.indexOf(name + '=') === 0) {。

return cookie.substring(name.length + 1);}。

}。

return '';}。

```。

上面的代码中,我们首先使用split(';')方法将document.cookie的字符串按分号分割成多个cookie键值对,然后使用for循环遍历每个键值对,通过indexOf和substring方法来获取指定名称的cookie值。

方法二,使用正则表达式。

除了使用split和indexOf方法来解析document.cookie外,我们还可以使用正则表达式来实现更灵活的匹配和提取。

js本地缓存的几种方法

js本地缓存的几种方法

js本地缓存的⼏种⽅法⼀.⾸先讲讲使⽤缓存的好处:(1).当页⾯渲染的数据过多时,为了减轻对内存的占⽤,对初次接收且会⽤到的数据进⾏本地缓存,是有着⼤好处的.(2).受⽹速等各种因素的影响,当渲染数据过多时,若存在频繁的切换页⾯,⽤户体验效果不佳。

⼆.常见的本地缓存⽅式1.利⽤storage来对数据进⾏存储(sessionStorage、localStorage)a.sessionStorage临时的会话存储,只要当前的会话窗⼝未关闭,存储的信息就不会丢失,即便刷新了页⾯或者在编辑器中更改了代码,存储的会话信息也不会丢失。

b.localStorage是⼀种如果你不主动去清除,会⼀直将数据存储在客户端的储存⽅式,即使关闭了浏览器,下次打开的时候仍然可以看到之前存储的未主动清除的数据(即便是杀毒软件或者浏览器⾃带的清除功能,也不能将localStorage存储的数据清除掉).⽤法:和sessionStorgae⼀致注意:storage存储的数据只能是字符串类型,其他类型的数据需做类型转换storage直接属于顶层对象window.2.cookiecookie属于较⽼且最常见⽤的最多的技术了,cookie的优点很多,⽤起来也⽐较⽅便但是缺点也很多:cookie兼容所有的浏览器,但其存储的数据是有⼤⼩限制的,⼀般同源是4kb;cookie本地存储的数据会被发送到服务器(所以建议在服务器环境下使⽤cookie);跨域访问问题;浪费带宽等等;然:最近在使⽤本地cookie缓存时发现chrome竟然不⽀持js本地操作cookie,其他市⾯上的主流浏览器基本都⽀持这也告诉了我们:在使⽤cookie前,先确认浏览器⽀不⽀持cookie先检查当前浏览器是否⽀持或者禁⽤了cookie,可⽤以下js代码:View Code可见chrome:在js的脚本中,cookie实际上是document的⼀个字符属性,当你读取cookie的值时,得到的是⼀个字符串,⾥⾯的是当前web存放的所有的cookie的name,value,除此之外,每⼀个cookie除了有name,value,还有其他四个属性:expires过期时间,path路径,domain域以及secure安全等。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cookie
Cookie 基础知识
我们已经知道,在 document 对象中有一个 cookie 属性。

但是 Cookie 又是什么?“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。

”——MSIE 帮助。

一般来说,Cookies 是 CGI 或类似,比HTML 高级的文件、程序等创建的,但是 JavaScript 也提供了对 Cookies 的很全面的访问权利。

在继续之前,我们先要学一学 Cookie 的基本知识。

每个 Cookie 都是这样的:cookie名=cookie值;cookie本身仅仅是一个字符串,是一组名值对;多组名值对用分号加空格分隔!
"cookie名"的限制与 JavaScript 的命名限制大同小异,少了“不能用JavaScript 关键字”,多了“只能用可以用在 URL 编码中的字符”。

后者比较难懂,但是只要你只用字母和数字命名,就完全没有问题了。

“值”的要求也是“只能用可以用在 URL 编码中的字符”。

每个 Cookie 都有失效日期,一旦电脑的时钟过了失效日期,这个 Cookie 就会被删掉。

我们不能直接删掉一个 Cookie,但是可以用设定失效日期早于现在时刻的方法来间接删掉它。

每个网页,或者说每个站点,都有它自己的 Cookies,这些 Cookies 只能由这个站点下的网页来访问,来自其他站点或同一站点下未经授权的区域的网页,是不能访问的。

每一“组”Cookies 有规定的总大小(大约 2KB 每“组”),一超过最大总大小,则最早失效的 Cookie 先被删除,来让新的Cookie“安家”。

访问Cookie
document.write(document.cookie);//输出类似"name1=value1; name2=value2; name3=value3"的字符串
document.write(typeof document.cookie);//cookie仅仅是个字符串
但这样获取到的是一堆混乱的字符串,必须对其进行处理才能知道它的含义!在类似ASP或PHP这样的服务器端脚本中,往往设置cookie十分简单
//ASP
response.cookies("cookieName")="cookieValue"
//PHP
setcookie("cookieName","cookieValue");
解析Cookie名值对
方案一:直接截取字符串
function getCookie(cookieName) {
var start = document.cookie.indexOf(cookieName+"=");
if (start ==-1) {return "";}
start = start+cookieName.length+1;
var end = document.cookie.indexOf(";",start);
if (end=-1) {end = document.cookie.length;}
return document.cookie.substring(start,end);
}
方案二:将Cookie拆分为数组,通过遍历取得
function getCookie(cookieName) {
var cookies=document.cookie.split("; ");//一个分号加一个空格
if (!cookies.length) {return "";}
var pair=["",""];
for (var i=0;i< cookies.length;i++) {
pair = cookies[i].split("=");//以赋值号分隔,第一位是Cookie名,第二位是Cookie值
if (pair[0]==cookieName) {
break;
}
}
return pair[1];
}
方案三:使用正则表达式解析
function getCookie(cookieName) {
var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");
var arr = re.exec(document.cookie);
return arr?arr[1]:"";
}
设置Cookie
一个Cookie包含以下信息:
∙Cookie名称,Cookie名称必须使用只能用在URL中的字符,一般用字母及数字
∙Cookie值,Cookie值同样也只能使用可以用在URL中的字符,一般需要在设置Cookie值时对其使用encodeURI方法进行转义
∙Expires,过期日期,一个GMT格式的时间,当过了这个日期之后,浏览器就会将这个Cookie删除掉,当不设置这个的时候,Cookie在浏览器关闭后消失
∙Path,一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie ∙Domain,子域,指定在该子域下才可以访问Cookie,例如要让Cookie在下可以访问,但在下不能访问,则可
将domain设置成
∙Secure,安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问
注意:Cookie安全机制要求站点页面只能访问本站点的Cookie,不能访问其它站点的Cookie。

同时,最好在设置Cookie时使用encodeURI对象进行URI编码,在取出Cookie时再使用decodeURI对其进行解码!
设置一个完整Cookie示例
var expires = new Date();
expires.setMonth(expires.getMonth()+1);//一个月后Cookie失效
document.cookie = "userName="+encodeURI("用户名")+"; expires="+
expires.toGMTString()+"; path=/; domain=; secure";
每次设置document.cookie值时如果该Cookie名称并不存在,则新增一个Cookie,如果已经存在,则修改以前的值!
document.cookie ="a=1";//新增一个名称为a的Cookie
document.cookie = "b=2";//新增一个名称为b的Cookie,原来的Cookie安然无恙
document.cookie = "a=3";//将原来的名称为a的Cookie值修改为3
setCookie函数
function setCookie(name,value,expires,domain,secure) {
var str = name+"="+encodeURI(value);//不要忘了在对应getCookie函数里面加上decodeURI方法
if (expires) {
str += "; expires="+expires.toGMTString();
}
if (path) {
str += "; path="+path;
}
if (domain) {
str += "; domain="+domain;
}
if (secure) {
str += "; secure";
}
document.cookie = str;
}
删除Cookie
没有删除Cookie的直接的方法,但可以变通一下来删除Cookie!
function delCookie(cookieName) {
var expires = new Date();
expires.setTime(expires.getTime()-1);//将expires设为一个过去的日期,浏览器会自动删除它
document.cookie = cookieName+"=;
expires="+expires.toGMTString();
}。

相关文档
最新文档