最近在修改重寫自己的簡歷程序,其中要使用皮膚切換和lightbox效果,在開發的工作中IE8,給我帶來點麻煩。
Cookie的處理之前就遇到過IE8處理Cookie的問題,就是在某網站上用IE8登陸,一登上去,切換個頁面又需要登陸才能發表。問題就是登陸的cookie信息,IE8不接受。在網上看了很多朋友體提到這樣的問題,都是說在登陸論壇的時候,要重復登陸,IE8無法讀取cookie。呵呵,最後自己仔細查了下IE8相關文檔,呵呵,其中說IE8的安全設置提高了,只讀取有明確域名標識的cookie。
呵呵,原來就是自己的壞習慣,使用cookie從來都不明確設置域名:
cookie.set('skin', 'blue', 365, '') // 問題就在這裡最後的''
這裡本應該設置要發送cookie信息的域名的(cookie的詳細信息【[url=]cookie in javascript[/url]】),但是以前IE不做域名設置時,就根據訪問的頁面站點的域名為默認的域名。但是現在IE8就不行了,老實點把域名加上吧。對了,最後把通用的cookie使用類貼出來:
var Cookie = {
isAllowed: document.cookie && document.cookie != '',
set: function(cn, cv, d, dm){
var now = new Date();
var expire = new Date();
if (d == null || d == 0) {
d = 1;
}
expire.setTime(now.getTime() + 3600000 * 24 * d);
document.cookie = cn + '=' + encodeURI(cv) + ';expires=' + expire.toGMTString() + ';domain=' + dm + '; path=/';
},
clear: function(cn, dm){
if (this.get(name)) {
document.cookie = cn + '=' + ((domain) ? '; domain=' + dm : '') + '; expires=Thu, 01-Jan-70 00:00:01 GMT';
}
},
get: function(cn){
var dc = document.cookie;
var prefix = cn + '=';
var begin = dc.indexOf('; ' + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) {
return null;
}
}
else {
begin += 2;
}
&nb