Internet Explorer不允许我使用此Javascript函数创建会话cookie?

Internet Explorer不允许我使用此Javascript函数创建会话cookie?,javascript,Javascript,我正在使用Javascript创建cookie,如下所示 function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); }

我正在使用Javascript创建cookie,如下所示

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}
Firefox和Chrome会创建7天的mcoo cookie和会话的mdes cookie,而Internet Explorer只会创建mcoo cookie。我错过了什么

    createCookie('mcoo', hash, 7);
    createCookie('mdes', hash);
更新


作为一种解决方法,我将天数*24改为6,并将mcoo的到期日改为28,因此这是1周,并将到期日改为mdes 16小时。但我要每节课。

正如你所发现的。。。我的工作又不一样了,恩

在firefox和chrome中,如果给一个零值使cookie过期,那么它将像预期的那样工作,但在IE中不会,因为在IE中,cookie一经设置就会立即过期

所以

家具、固定装置和固定装置: …要在IE中实现这一点,您需要删除expire参数并按如下方式离开:

即: 使现代化 我可能会使用以下内容: 编辑:测试并使用IE11和CR36

然后,调用函数:

// normal cookie expire in 7 days
createCookie('mcoo', hash, 7);
// session cookie
createCookie('mdes', hash, 0);
资料来源:
更多信息:

您的expires变量正在if和else块中设置。当您试图创建未定义的cookie时,它们超出了范围。@ps2goat-Eh。。不。JavaScript的变量是函数级作用域,而不是块级。@JeremyJStarcher,我明白了。在进入if块之前,如果变量的作用域和在整个函数中使用,那么在顶部声明一个变量是否仍然有意义?@ps2goat这些词会引发宗教战争、火灾和硫磺。。。但我要说,很多人都会同意你的观点,包括受人尊敬或憎恨的道格拉斯·克罗克福德。我明白了,谢谢你。如何更改我的代码以允许我设置7天的cookies和跨浏览器会话?请使用IE for all的cookies。。。如果不提供expire参数,将创建一个会话cookieOh!看看我发现了什么,相同的解释和相同的源XD。。。但是如果我用IE建议替换当前的,我如何创建过期7天的cookie?
document.cookie = name + "=" + value + " ; path=/";
function createCookie(name, value, days) {

    var c_date,
    c_name = name + "=" + value + ";",
    c_expi = "",
    c_path = "path=/";

    if (days > 0) {
        c_date = new Date();
        c_date.setTime(c_date.getTime() + (days * 24 * 60 * 60 * 1000));
        c_expi = "expires=" + c_date.toGMTString() + ";";
    }

    // create the cookie
    document.cookie = c_name + c_expi + c_path;

}
// normal cookie expire in 7 days
createCookie('mcoo', hash, 7);
// session cookie
createCookie('mdes', hash, 0);