IE8 瀏覽器Cookie的處理
更新時(shí)間:2009年01月31日 23:49:17 作者:
最近在修改重寫自己的簡(jiǎn)歷程序,其中要使用皮膚切換和lightbox效果,在開發(fā)的工作中IE8,給我?guī)睃c(diǎn)麻煩。
Cookie的處理
之前就遇到過IE8處理Cookie的問題,就是在某網(wǎng)站上用IE8登陸,一登上去,切換個(gè)頁面又需要登陸才能發(fā)表。問題就是登陸的cookie信息,IE8不接受。在網(wǎng)上看了很多朋友體提到這樣的問題,都是說在登陸論壇的時(shí)候,要重復(fù)登陸,IE8無法讀取cookie。呵呵,最后自己仔細(xì)查了下IE8相關(guān)文檔,呵呵,其中說IE8的安全設(shè)置提高了,只讀取有明確域名標(biāo)識(shí)的cookie。
呵呵,原來就是自己的壞習(xí)慣,使用cookie從來都不明確設(shè)置域名:
cookie.set('skin', 'blue', 365, '') // 問題就在這里最后的''
這里本應(yīng)該設(shè)置要發(fā)送cookie信息的域名的(cookie的詳細(xì)信息【[url=]cookie in javascript[/url]】),但是以前IE不做域名設(shè)置時(shí),就根據(jù)訪問的頁面站點(diǎn)的域名為默認(rèn)的域名。但是現(xiàn)在IE8就不行了,老實(shí)點(diǎn)把域名加上吧。對(duì)了,最后把通用的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;
}
var end = document.cookie.indexOf(';', begin);
if (end == -1) {
end = dc.length;
}
return decodeURI(dc.substring(begin + prefix.length, end));
}
};
Opacity/filter 透明濾鏡的使用
知道lightbox效果的朋友都知道,就是因?yàn)橛辛艘粋€(gè)半透明的遮罩層,給這個(gè)效果增添了不少的NB的感覺。但是在IE8中,現(xiàn)在對(duì)透明濾鏡的支持不是那么好了,我甚至在google上看到有國(guó)外的朋友說,IE8準(zhǔn)備拒絕對(duì)元素設(shè)置透明,除了對(duì)圖片的透明的支持。呵呵,我想你在開類似程序的時(shí)候,在IE8中那酷酷的透明效果,卻成了你心頭的痛。不過不用擔(dān)心,我目前在beta2中,還是可以使用這個(gè)效果,你只要這么做:
function Opacity(element, value){
var style = element.style;
style.opacity = value / 100;
style.filter = "alpha(opacity=" + value + ")";
}
就3行代碼,呵呵,不用像很多JS庫中那樣做什么瀏覽器嗅探,我測(cè)試過,IE6~8(包裹IE8標(biāo)準(zhǔn)視圖),opera 9+, NetScape8.1, FF2.x~3.x, goolge瀏覽器中都支持得很好。就是要注意順序,一定要先使用opacity,然后使用filter就保證一定能夠正常顯示。很好,很簡(jiǎn)單!呵呵,今天就先說這么點(diǎn)吧!
之前就遇到過IE8處理Cookie的問題,就是在某網(wǎng)站上用IE8登陸,一登上去,切換個(gè)頁面又需要登陸才能發(fā)表。問題就是登陸的cookie信息,IE8不接受。在網(wǎng)上看了很多朋友體提到這樣的問題,都是說在登陸論壇的時(shí)候,要重復(fù)登陸,IE8無法讀取cookie。呵呵,最后自己仔細(xì)查了下IE8相關(guān)文檔,呵呵,其中說IE8的安全設(shè)置提高了,只讀取有明確域名標(biāo)識(shí)的cookie。
呵呵,原來就是自己的壞習(xí)慣,使用cookie從來都不明確設(shè)置域名:
cookie.set('skin', 'blue', 365, '') // 問題就在這里最后的''
這里本應(yīng)該設(shè)置要發(fā)送cookie信息的域名的(cookie的詳細(xì)信息【[url=]cookie in javascript[/url]】),但是以前IE不做域名設(shè)置時(shí),就根據(jù)訪問的頁面站點(diǎn)的域名為默認(rèn)的域名。但是現(xiàn)在IE8就不行了,老實(shí)點(diǎn)把域名加上吧。對(duì)了,最后把通用的cookie使用類貼出來:
復(fù)制代碼 代碼如下:
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;
}
var end = document.cookie.indexOf(';', begin);
if (end == -1) {
end = dc.length;
}
return decodeURI(dc.substring(begin + prefix.length, end));
}
};
Opacity/filter 透明濾鏡的使用
知道lightbox效果的朋友都知道,就是因?yàn)橛辛艘粋€(gè)半透明的遮罩層,給這個(gè)效果增添了不少的NB的感覺。但是在IE8中,現(xiàn)在對(duì)透明濾鏡的支持不是那么好了,我甚至在google上看到有國(guó)外的朋友說,IE8準(zhǔn)備拒絕對(duì)元素設(shè)置透明,除了對(duì)圖片的透明的支持。呵呵,我想你在開類似程序的時(shí)候,在IE8中那酷酷的透明效果,卻成了你心頭的痛。不過不用擔(dān)心,我目前在beta2中,還是可以使用這個(gè)效果,你只要這么做:
復(fù)制代碼 代碼如下:
function Opacity(element, value){
var style = element.style;
style.opacity = value / 100;
style.filter = "alpha(opacity=" + value + ")";
}
就3行代碼,呵呵,不用像很多JS庫中那樣做什么瀏覽器嗅探,我測(cè)試過,IE6~8(包裹IE8標(biāo)準(zhǔn)視圖),opera 9+, NetScape8.1, FF2.x~3.x, goolge瀏覽器中都支持得很好。就是要注意順序,一定要先使用opacity,然后使用filter就保證一定能夠正常顯示。很好,很簡(jiǎn)單!呵呵,今天就先說這么點(diǎn)吧!
相關(guān)文章
使用JavaScriptCore實(shí)現(xiàn)OC和JS交互詳解
JavaScriptCore是webkit的一個(gè)重要組成部分,主要是對(duì)JS進(jìn)行解析和提供執(zhí)行環(huán)境。下面這篇文章主要給大家介紹了使用JavaScriptCore實(shí)現(xiàn)OC和JS交互的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-03-03javascript刪除元素節(jié)點(diǎn)removeChild()用法實(shí)例
這篇文章主要介紹了javascript刪除元素節(jié)點(diǎn)removeChild()用法,實(shí)例分析了removeChild()方法移除節(jié)點(diǎn)的使用技巧,需要的朋友可以參考下2015-05-05ie瀏覽器使用js導(dǎo)出網(wǎng)頁到excel并打印
簡(jiǎn)單介紹一種可以使用簡(jiǎn)單的JS來實(shí)現(xiàn)把網(wǎng)頁中的信息原樣導(dǎo)出到Excel、還可以打印的方法,需要的朋友可以參考下2014-03-03