Is it possible to mock [removed] in JavaScript?

后端 未结 6 541
猫巷女王i
猫巷女王i 2020-12-14 07:39

document.cookie is like a string, but it is not a string. To quote the example from the Mozilla doc:

document.cookie = \"name=oeschger\";
docume         


        
6条回答
  •  眼角桃花
    2020-12-14 08:15

    I know this is an old topic, but in my case expiring cookies was necessary so here's a solution that combines the above answers and a setTimeout call to expire cookies after X seconds:

    const fakeCookies = {
        // cookie jar
        all: {},
    
        // timeouts
        timeout: {},
    
        // get a cookie
        get: function(name)
        {
            return this.all[ name ]
        },
    
        // set a cookie
        set: function(name, value, expires_seconds)
        {
            this.all[ name ] = value;
    
            if ( expires_seconds ) {
                ! this.timeout[ name ] || clearTimeout( this.timeout[ name ] )
                this.timeout[ name ] = setTimeout(() => this.unset(name), parseFloat(expires_seconds) * 1000)
            }
        },
    
        // delete a cookie
        unset: function(name)
        {
            delete this.all[ name ]
        }    
    }
    

提交回复
热议问题