JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie。
js设置cookie方法汇总:
第一种:
<script>
//设置cookie
function 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;
}
//获取cookie
function 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 \"\";
}
//清除cookie
function 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方法!
//写cookies
function 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());
}
//读取cookies
function getCookie(name)
{
var arr,reg=new RegExp(\"(^| )\"+name+\"=([^;]*)(;|$)\");
if(arr=document.cookie.match(reg))
return (arr[2]);
else
return null;
}
//删除cookies
function 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){//添加cookie
var 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=\"删除该名称cookie\" onclick=\"del_()\"/>
</div>
</form>
</body>
</html>
注意:
chrome浏览器在本地获取不到cookie。必须在服务器上才可以。如果是本地的话,你可以放到local的www目录下面。
Google Chrome只支持在线网站的cookie的读写操作,对本地html的cookie操作是禁止的。所以下面的代码如果你写在一个本地的html文件中,将弹出的对话框内容为空。
document.cookie = \"Test=cooo\"; alert(document.cookie);
如果这个页面是在线网站的内容,则会正常显示cookie内容Test=cooo等等。
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文地址:https://www.stayed.cn/item/19463
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我