JavaScriptのBOMクッキーの使用

JavaScriptのクッキー

クッキーは、お使いのコンピュータに保存されている小さなデータテキストファイルです。Webサーバがブラウザにページを送信すると、接続が閉じられると、サーバは、すべてのコンテンツのユーザーを忘れてしまいます。クッキー本発明は、「利用者情報を記憶する方法」の問題を解決することである:
ユーザーがページにアクセスすると、彼/彼女の名前はクッキーに保存することができます。
ユーザーがページを訪問次回は、クッキーは、彼/彼女の名前を「記憶」しています。
クッキーは、次のようなキーの形で保存されます。

username = John Doe

ブラウザがサーバーからページを要求すると、ページに属するクッキーが要求に追加されます。このように、サーバは、ユーザーに関する情報を「記憶」し、必要なデータを取得します。
お使いのブラウザがCookieのローカルサポート閉じている場合は、次の例は無効です。

クッキーを作成するにはJavaScriptを使用します

JavaScriptのdocument.cookieプロパティは、作成、読み取り、およびクッキーを削除するために使用することができます。JavaScriptを使用すると、あなたは、このようなクッキーを作成することができます。

document.cookie = "username=John Doe";

あなたはまた、(時間のUTC単位で)有効期限を追加することができます。ブラウザを閉じたときに、デフォルトで、クッキーを削除します。

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

pathパラメータを使用して、あなたはパスクッキーが所属ブラウザを伝えることができます。デフォルトでは、クッキーは、現在のページに属しています。

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

JavaScriptを使用してクッキーを読みます

JavaScriptを使用すると、クッキーは次のように読むことができます。

var x = document.cookie;

全てdocument.cookieのような、クッキー文字列を返す:cookie1 =値; cookie2 =値; cookie3 =値。

JavaScriptを使用してクッキーを変更

JavaScriptを使用すると、あなたはクッキークッキーと同じ変更を作成することができます。

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

古いクッキーが上書きされます。

JavaScriptを使用してクッキーを削除します。

クッキーを削除することは非常に簡単です。あなたはクッキーを削除すると、Cookieの値を指定する必要はありません。単純にパラメータ設定された配達日を満了します:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

あなたは正しいクッキーを確保するために、カスタムのクッキーのパスを削除する必要があります。パスを指定しない場合、一部のブラウザでは、クッキーを削除することはできません。

クッキー文字列

document.cookieプロパティは、一般的なテキスト文字列のように見えます。しかし、それはそうではありません。値のペア-あなたは完全なクッキー文字列のdocument.cookieを書き込みます場合でも、あなたは再びそれを読んだとき、あなただけの、その名前を見ることができます。あなたが新しいクッキーを設定した場合、それは古いクッキーを上書きしません。新しいクッキーはdocument.cookieに追加されますので、あなたは再びdocument.cookieを読めば、あなたのような何か買ってあげる:cookie1 =値; cookie2 =値 ;
あなたが特定のCookieの値を検索したい場合は、JavaScript関数を記述する必要がありますがクッキークッキー値の検索文字列。

JavaScriptのクッキーの例

次の例では、保存された訪問者の名前のクッキーを作成します。訪問者は初めてのランディングページは、彼/彼女の名前を埋めるために/彼女を彼に聞いてきます。名前はクッキーに保存されています。訪問者が同じページに到着する次の時間は、彼/彼女はウェルカムメッセージを受信します。この例では、3つのJavaScript関数を作成します。

  1. クッキー機能設定値
  2. クッキー機能の値を取得します。
  3. Cookieの値のための機能をチェック
  4. Cookieの設定機能

まず、我々は関数名を作成するには、訪問者のクッキー変数に格納されます。

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

例説明:
クッキーは(exdays)の有効期限が切れる前に、関数のパラメータは、クッキー(CNAME)の名称、クッキー(cValue)の値との日数です。この関数はのCookieName、クッキーの値と連結の有効期限が切れた文字列でクッキーを設定します。
Cookieの取得機能は、
次に我々は、指定されたCookieの関数の戻り値を作成します。

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

機能:
パラメータ(CNAME)としてのCookieName。変数(名)を作成する(「=」+ CNAME)検索対象のテキストを使用します。(「;」CA = decodingCookie.split(このような配列の名前カリフォルニア州スプリットdocument.cookieセミコロンで「$」などの特殊文字、とデコードクッキー文字列のCookie処理 ))。CAは、(; iはca.lengthを<I = 0アレイを通して循環 、iは++;) [i])とCA =各値cを読み出します。クッキー(c.indexOf(名)== 0がいる場合 ) 発見された、クッキー(c.substring(name.length、c.length))の値が返されます。あなたはクッキーを見つけることができない場合は、返します「」
クッキーチェック機能は
最後に、私たちはクッキーかどうかを確認する関数を作成します。あなたはクッキーを設定した場合、それが挨拶を表示します。クッキーが設定されていない場合は、プロンプトボックスが表示され、365日、ユーザー名のCookieストア関数ますsetcookieを呼び出すことにより、ユーザーの名前を尋ねる表示されます。

function checkCookie() {
  var username = getCookie("username");
  if (username != "") {
   alert("Welcome again " + username);
  } else {
    username = prompt("Please enter your name:", "");
    if (username != "" && username != null) {
      setCookie("username", username, 365);
    }
  }
}

すべてのコードが一緒に実装されています

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}
function checkCookie() {
  var user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

上記の例checkCookie()関数は、ページのロード時に実行されます。
詳細は、技術的な記事をクッキー

おすすめ

転載: blog.51cto.com/13578973/2425819