(1) 当前页面未设置同名cookie的情况;
//超过4k的一个超长字符串
var longstring='dfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfs
afdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsaf
dfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdf
safdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfs
afdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsaf
dsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafd
fsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsa
fdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdf
safdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfs
afdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafd
safdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdf
safdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsaf
dfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsaf
dfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsaf
dsafdfsa
fdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsa
fdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsaf
dfsafdsafdfsafdsafdfsafdsafdfsafdsafddfsafdsafdfsafdsafdfsafdsafdfsafdsafdf
;
//写cookie函数
function setcookie(name,value)
{
var days = 1; //此 cookie 将被保存 1 天
var exp = new date();
exp.settime(exp.gettime() + days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.togmtstring();
}
function getcookie(name)//取cookies函数
{
var arr = document.cookie.match(new regexp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
//设置cookie,此处包含文章开头提到的两种情况:
setcookie('test','已经设置的cookie');
//设置超长cookie:
setcookie('test',longstring);
alert(getcookie('test'));
测试结果如下:(1) 当前页面未设置同名cookie的情况;
浏览器版本 输出结果 ie6 null ie7 null ie8 null firefox null chrome null opera null结论:在以上各版本浏览器中写入超过4kb(当然各浏览器情况可能不同,有的是4095字节,有的是4096字节)字符串时会出现无法写入的情况,并不能实现截断写入的情况。(2) 当前页面已设置同名cookie的情况;
浏览器版本 输出结果 ie6 null ie7 null ie8 已经设置的cookie firefox 已经设置的cookie chrome 已经设置的cookie opera 已经设置的cookie结论:在以上各版本浏览器中当已经存在键名为 'test' 的值时,写入超过4kb(当然各浏览器情况可能不同,有的是4095字节,有的是4096字节)字符串时:1. 在ie6与ie7下,当无法写入超长字符串时,会影响原有键名为'test'的cookie值,在测试结果中可以看到此cookie值已经被清除;2. 而在其他浏览器中,当无法写入超长字符串时,并不会影响到原有同键名的cookie值,原有cookie值依然可以正常读取。