今天或者说之前就遇到苹果手机不能清除cookie,需要自己写一个js来清除。
直接看代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name ="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="format-detection" content="telephone=no">
<title>清除cookie</title>
<meta charset="utf-8" />
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquery.cookie/1.4.1/jquery.cookie.js"></script>
</head>
<body>
<h1>清除cookie的操作</h1>
<input type="button" value="清除所有cookie" onclick="clearCookie();" />
<p>下面是当前所有的cookie值:</p>
<div id="divcookie">
</div>
<script>
$(function(){
$("#divcookie").html(document.cookie);
});
</script>
<script>
function clearCookie() {
var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
if (keys) {
for (var i = keys.length; i--;) {
document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString();//清除当前域名下的,例如:m.kevis.com
document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString();//清除当前域名下的,例如 .m.kevis.com
document.cookie = keys[i] + '=0;path=/;domain=kevis.com;expires=' + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com
}
}
$("#divcookie").html(document.cookie);
alert('已清除');
}
//clearCookie();
</script>
</body>
</html>
这段代码根据网上扒来修改了一下,主要是针对当前域名进行删除,当前域名有两种情况。一种前面加了点,一种不加,默认指定删除域名的是删除加了点的。
1、设置 cookie 时明确指定 domain 域名,子域名可读取(子域共享该cookie),删除时则也必须明确指定域名,否则无法删除。(这种产生的是 .baidu.com)
2、设置 cookie 时不指定域名,使用默认值,则表示 只有当前域名可见(子域不可共享)。删除时也不需要指定域名,否则无法删除。(这种产生的是 www.baidu.com)
所以产生cookie很重要