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

Javascript
javascript IFrame 强制刷新代码
JQuery 学习笔记 选择器之一
JQuery 学习笔记 选择器之二
JQuery 学习笔记 选择器之三
JQuery 学习笔记 element属性控制
Prototype 工具函数 学习
Prototype Selector对象学习
用JQuery 实现AJAX加载XML并解析的脚本
jquery 表单下所有元素的隐藏
javascript 动态table添加colspan\rowspan 参数的方法
利用javascript/jquery对上传文件格式过滤的方法
javaScript 判断字符串是否为数字的简单方法
jquery 将disabled的元素置为enabled的三种方法
javascript 解析后的xml对象的读取方法细解
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
javascript 一个函数对同一元素的多个事件响应
对象特征检测法判断浏览器对javascript对象的支持
javaScript Array(数组)相关方法简述
js 字符串操作函数
JavaScript中null与undefined分析

Javascript 中的 IE8浏览器Cookie的处理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 264 ::
收藏到网摘: 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就保证一定能够正常显示。很好,很简单!呵呵,今天就先说这么点吧!