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

Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
JavaScript 创建随机数和随机图片
javascript document.execCommand() 常用解析
firefox下对ajax的onreadystatechange的支持情况分析
Javascript attachEvent传递参数的办法
jQuery Attributes(属性)的使用(一、属性篇)
jquery自动完成插件(autocomplete)应用之PHP版
查询绑定数据岛的表格中的文本并修改显示方式的js代码
讨论javascript(一)工厂方式 js面象对象的定义方法
IE不支持option的display样式,只能使用remove和add
多浏览器兼容的获取元素和鼠标的位置的js代码
js checkbox全选并将获取值放到input里边
javascript 日期联动选择器 [其中的一些代码值得学习]
javascript实现的仿51job地址多项选择方式效果
jQuery 渐变下拉菜单
利用图片的 onerror 事件载入默认图片
js实现页面打印功能实例代码(附去页眉页脚功能代码)
JQuery读取XML文件数据并显示的实现代码
比较详细的关于javascript 解析json的代码
TextArea 控件的最大长度问题(js json)

Javascript 中的 IE8浏览器Cookie的处理


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