javascript - 我无法在 Opera 和 Internet Explorer 中设置 cookie

标签 javascript cookies

var ShopCookie = {}
ShopCookie.addc = function createCookie(name,value,days=30) {   
    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=/";
}

ShopCookie.addc('cookie1','Mytext');

我有这段代码,它在 FireFox 和 Chrome 中运行得很好。但 Opera、EDGE 和 IE 什么都不做!

最佳答案

函数参数声明中的语法 days=30 是新的 ES6 功能,尚未在所有地方得到支持。

您可以回退到旧的默认参数样式:

var ShopCookie = {}
ShopCookie.addc = function createCookie(name,value,days) {    
    // if days argument not passed, then default it to 30 days
    if (arguments.length < 3) {
        days = 30;
    }
    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=/";
}

ShopCookie.addc('cookie1','Mytext');

仅供引用,您应该在调试控制台中看到错误,这些错误准确地告诉您浏览器不喜欢哪种语法。每当您有无法运行的代码时,您总是会在那里查找。

关于javascript - 我无法在 Opera 和 Internet Explorer 中设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36927762/

相关文章:

javascript - 当另一次加载完成时加载文件

javascript - 将 JS 数字数组传递给 emscripten C++ 而无需 reinterpret_cast

javascript - 将元素添加到 javascript "dictionary"数组中

forms - TYPO3 8.7 - 核心扩展形式正在设置 fe_typo_user

javascript - 带有 REST 服务器的 Angular JS : Use and set temporary data(cookie or others)

javascript - 使用 TypeScript 在现有原型(prototype)上扩展实例/静态函数

ios - 在 iOS 中将应用程序中的 cookie 设置为 Safari

javascript - 使用 Javascript 或任何其他语言的 cookie 发出客户端 HTTP GET 请求

session - 为什么关闭浏览器后cookies不会过期?

javascript - 将数组中字符串的首字母大写