定番
履歴

JS cookie書き込み

JS cookie書き込み

改めてcookieの書き込みについてまとめます。

JavaScript

データの書き込み

基本的にエンコードするようにします。

半角スペースやセミコロンがクッキーのデータの接続記号のためエンコードしといたほうが都合がよいからです。

data='123';
enc_data = encodeURIComponent(data);
cookie_string = 'data='+enc_data;
document.cookie = cookie_string;

↓この部分がクッキーに書き込みを行います。

document.cookie = cookie_string;

cookie_stringの内容は「data=123」となっています。

クッキー書き込みサンプル

書き込みボタン
削除ボタン

有効期限

max-ageで書く場合

limit_sec = 60*60*24; //一日
cookie_string = 'data='+enc_data+'; '
              + 'max-age='+limit_sec;
document.cookie = cookie_string;

有効期限

expireで書く場合

var expire = new Date();
expire.setTime( expire.getTime() + 1000 * 3600 * 24);
//世界標準時(GMT)でセットする
cookie_string = 'data=123; expires=' + expire.toUTCString();

document.cookie = cookie_string;

有効期限を明示しない場合、そのクッキーはブラウザを終了すると削除されます。

範囲の指定

ドメイン配下指定サブドメインを含む場合

cookie_string += 'domain=.kipure.com; '

パス配下指定

cookie_string += 'path=/hoge/; '

https通信のときのみ、クッキーが送信したい場合

cookie_string += 'secure=true; '

JSでアクセスできなくするフラグ、高セキュリティで特にセッションできれる場合に使います。

cookie_string += 'HttpOnly=true; '

読み込み

指定クッキーの値の取得

function GetCookie( cookieName )
{
    var result = null;
    var indexOfName = cookieName + '=';
    var AllCookie = document.cookie;

    var position = AllCookie.indexOf( indexOfName );
    if( position != -1 )
    {
        var startIndex = position + indexOfName.length;
        var endIndex = AllCookie.indexOf( ';', startIndex );
        if( endIndex == -1 )
        {
            endIndex = AllCookie.length;
        }

        result = decodeURIComponent(
            AllCookie.substring( startIndex, endIndex ) );
    }

    return result;
}

クッキーを連想配列として取得

function GetAllCookies()
{
    var result = new Array();

    var allCookies = document.cookie;
    if( allCookies != '' )
    {
        var cookies = allCookies.split( '; ' );

        for( var i = 0; i < cookies.length; i++ )
        {
            var cookie = cookies[ i ].split( '=' );

            // クッキーの名前をキーとして 配列に追加する
            result[ cookie[ 0 ] ] = decodeURIComponent( cookie[ 1 ] );
        }
    }
    return result;
}

削除

var date = new Date();
date.setTime( date.getTime() - 1 );
cookie_string = 'data=; expires=' + date.toUTCString();

document.cookie = cookie_string;
2018-01-05 22:32:21
このページの二次元コード

関連するサンプル

人気記事ランキング

© 2018 kipure
Top