当前位置: 首页 > 图文教程 > 网络编程 > Javascript > IE8 浏览器Cookie的处理

Javascript
屏蔽Flash右键信息的js代码
JavaScript QueryString解析类代码
JavaScript写的一个自定义弹出式对话框代码
js限制输入框可输入字节数代码
JS与框架页的操作代码
jQuery+CSS 实现的超Sexy下拉菜单
使用IE6看老赵的博客 jQuery初探
jQuery UI.Layout Plug-in做框架
jQuery框架实例代码分析
JS通用代码:Tab选项卡通用js代码
JavaScript脚本的void(0)究竟是何含义
9个优秀的JavaScript实现的评级投票插件教程
jQuery最出色的是 API 设计
jquery团队发布jquery 1.4
jQuery 1.4:15个新特性和优化增强
jQuery插件分享:Flash/MP3/Video多媒体插件
jQuery 1.4官方文档详细讲述新特性功能
网页每次加载调用不同CSS样式表
JQuery知识:20个jQuery教程+11个jQuery插件
制作Web电子表格的jQuery插件:jQuery.sheet

Javascript 中的 IE8 浏览器Cookie的处理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 196 ::
收藏到网摘: n/a

最近在修改重写自己的简历程序,其中要使用皮肤切换和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;
}
var end = document.cookie.indexOf(';', begin);
if (end == -1) {
end = dc.length;
}
return decodeURI(dc.substring(begin + prefix.length, end));
}
};

Opacity/filter 透明滤镜的使用
知道lightbox效果的朋友都知道,就是因为有了一个半透明的遮罩层,给这个效果增添了不少的NB的感觉。但是在IE8中,现在对透明滤镜的支持不是那么好了,我甚至在google上看到有国外的朋友说,IE8准备拒绝对元素设置透明,除了对图片的透明的支持。呵呵,我想你在开类似程序的时候,在IE8中那酷酷的透明效果,却成了你心头的痛。不过不用担心,我目前在beta2中,还是可以使用这个效果,你只要这么做:
复制代码 代码如下:

function Opacity(element, value){
var style = element.style;
style.opacity = value / 100;
style.filter = "alpha(opacity=" + value + ")";
}

就3行代码,呵呵,不用像很多JS库中那样做什么浏览器嗅探,我测试过,IE6~8(包裹IE8标准视图),opera 9+, NetScape8.1, FF2.x~3.x, goolge浏览器中都支持得很好。就是要注意顺序,一定要先使用opacity,然后使用filter就保证一定能够正常显示。很好,很简单!呵呵,今天就先说这么点吧!