ตั้งค่าคุกกี้
คุกกี้แต่ละตัวเป็นคู่ชื่อ/ค่า
document.cookie = "userid = 828";
หากคุณต้องการจัดเก็บคู่ชื่อ/ค่าหลายคู่ในแต่ละครั้งคุณสามารถใช้กะบังรวมทั้งพื้นที่ (;) เพื่อแยกตัวอย่างเช่น:
document.cookie = "userId = 828; ชื่อผู้ใช้ = hulk";
คุณไม่สามารถใช้หมายเลขเซ็กเมนต์ (;), เครื่องหมายจุลภาค (,), เทียบเท่า (=) และพื้นที่ในชื่อหรือค่าของคุกกี้ มันง่ายที่จะทำสิ่งนี้ในชื่อของคุกกี้ แต่ค่าที่จะเก็บรักษาไว้นั้นไม่แน่นอน วิธีการจัดเก็บค่าเหล่านี้? ค่าและสามารถเก็บไว้ในค่าคุกกี้และยังสามารถเก็บไว้ในค่าคุกกี้และยังสามารถเก็บไว้ในค่าคุกกี้และยังสามารถเก็บไว้ในค่าคุกกี้และสามารถเก็บไว้ได้ ในค่าคุกกี้และยังสามารถเก็บไว้ในค่าคุกกี้และยังสามารถเก็บไว้ในค่าคุกกี้และสามารถเก็บไว้ในค่าคุกกี้และสามารถเก็บไว้ในค่าคุกกี้และสามารถทำได้ ถูกเก็บไว้ในค่าคุกกี้และสามารถเก็บไว้ในค่าคุกกี้และสามารถเก็บไว้ได้ ตัวอย่างเช่น:
document.cookie = "str ="+หลบหนี ("ฉันรัก ajax");
เทียบเท่ากับ:
document.cookie = "str = i%20love%20ajax";
หลังจากใช้การเข้ารหัส Escape () คุณจะต้องใช้ Unsescape () เพื่อถอดรหัสหลังจากใช้ค่าเพื่อให้ได้ค่าคุกกี้ดั้งเดิมซึ่งได้รับการแนะนำก่อนหน้านี้
แม้ว่า document.cookie ดูเหมือนแอตทริบิวต์ แต่ก็สามารถให้ค่าที่แตกต่างกัน แต่มันไม่เหมือนกับแอตทริบิวต์ทั่วไป
document.cookie = "userid = 828";
document.cookie = "ชื่อผู้ใช้ = hulk";
ในเวลานี้เบราว์เซอร์จะรักษาคุกกี้สองตัวซึ่งเป็นผู้ใช้และชื่อผู้ใช้ดังนั้นพวกเขาจึงกำหนดค่าให้กับเอกสาร cookie เพิ่มเติมเช่นข้อความเช่นนี้:
document.addcookie ("userId = 828");
document.addcookie ("ชื่อผู้ใช้ = hulk");
ในความเป็นจริงเบราว์เซอร์ตั้งค่าคุกกี้ด้วยวิธีนี้
document.cookie = "userId = 929";
ด้วยวิธีนี้ตั้งค่าคุกกี้ชื่อ UserID เป็น 929
รับค่าคุกกี้
นี่คือวิธีรับคุณค่าของคุกกี้ ค่าของคุกกี้สามารถรับได้โดยตรงจากเอกสาร Cookie:
var strcookie = document.cookie;
สิ่งนี้จะได้รับหลายชื่อ/ค่าที่คั่นด้วยหมายเลขเซ็กเมนต์ ตัวอย่างเช่น:
<script language = "javascript" type = "text/javascript">
-
document.cookie = "userid = 828";
document.cookie = "ชื่อผู้ใช้ = hulk";
var strcookie = document.cookie;
การแจ้งเตือน (Strcookie);
-
</script>
รูปที่ 7.1 แสดงค่าคุกกี้เอาต์พุต จะเห็นได้ว่าสามารถรับค่าคุกกี้ได้เพียงครั้งเดียวในคราวเดียวและไม่สามารถระบุชื่อคุกกี้เพื่อให้ได้ค่าที่ระบุ ผู้ใช้จะต้องวิเคราะห์สตริงนี้ด้วยตนเองเพื่อรับค่าคุกกี้ที่ระบุ
<script language = "javascript" type = "text/javascript">
-
// ตั้งค่าคุกกี้สองตัว
document.cookie = "userid = 828";
document.cookie = "ชื่อผู้ใช้ = hulk";
// รับสตริงคุกกี้
var strcookie = document.cookie;
// คุกกี้หลายตัวถูกตัดเป็นหลายชื่อ/ค่า
var arrcookie = strcookie.split (";");
var userid;
// การสำรวจอาร์เรย์คุกกี้ประมวลผลคู่คุกกี้แต่ละคู่
สำหรับ (var i = 0; i <arrcookie.length; i ++) {
var arr = arrcookie [i] .split ("=");
// ค้นหาคุกกี้ชื่อ userID และส่งคืนค่า
if ("userId" == arr [0]) {
userId = arr [1];
หยุดพัก;
-
-
การแจ้งเตือน (ผู้ใช้);
-
</script>
สิ่งนี้ได้รับค่าของคุกกี้เดียว
ในวิธีการที่คล้ายกันคุณสามารถรับค่าของคุกกี้หนึ่งตัวขึ้นไปและเทคนิคหลักยังคงเกี่ยวข้องกับการดำเนินการของสตริงและอาร์เรย์
กำหนดวันที่สิ้นสุดสำหรับคุกกี้
จนถึงขณะนี้คุกกี้ทั้งหมดเป็นคุกกี้เดียวนั่นคือคุกกี้เหล่านี้จะหายไปหลังจากที่เบราว์เซอร์ปิดตัวลง
ในการพัฒนาจริงคุกกี้มักจะต้องจัดเก็บเป็นเวลานานเช่นการรักษาสถานะการเข้าสู่ระบบของผู้ใช้ สามารถนำไปใช้กับตัวเลือกต่อไปนี้:
document.cookie = "userId = 828; Expires = GMT_STRING";
ในหมู่พวกเขา GMT_STRING เป็นสตริงเวลาที่แสดงโดยรูปแบบ GMT ตัวอย่างเช่น: หากคุณต้องการตั้งค่าคุกกี้ให้หมดอายุหลังจาก 10 วันคุณสามารถใช้งานได้เช่นนี้:
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
-
// รับเวลาปัจจุบัน
วันที่ var = วันที่ใหม่ ();
var expiredays = 10;
// กำหนดวันที่เป็น 10 วันหลังจาก 10 วัน
Date.settime (date.getTime ()+Expiredays*24*3600*1000);
// ตั้งค่าคุกกี้สองตัวของผู้ใช้และชื่อผู้ใช้ให้หมดอายุหลังจาก 10 วัน
document.cookie = "userid = 828; ชื่อผู้ใช้ = hulk; expire ="+date.togmtring ();
-
</script>
ลบคุกกี้
ในการลบคุกกี้มันสามารถกำหนดเวลาหมดอายุเป็นเวลาที่ผ่านมาเช่น ::
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
-
// รับเวลาปัจจุบัน
วันที่ var = วันที่ใหม่ ();
// กำหนดวันที่เป็นเวลาที่ผ่านมา
Date.settime (date.getTime () -10000);
// ลบผู้ใช้คุกกี้นี้
document.cookie = "userid = 828; expire ="+date.togmtring ();
-
</script>
ระบุเส้นทางที่สามารถเข้าถึงคุกกี้ได้
โดยค่าเริ่มต้นหากมีการสร้างคุกกี้บนหน้าเว็บหน้าอื่น ๆ ในไดเรกทอรีที่หน้าสามารถเข้าถึงคุกกี้ได้ หากมีไดเรกทอรีย่อยในไดเรกทอรีนี้คุณสามารถเข้าถึงได้ในไดเรกทอรีย่อย ตัวอย่างเช่นคุกกี้ที่สร้างขึ้นใน www.xxxx.com/html/b.html หรือ www.xxx.com/ html/บาง/c.html ไม่สามารถเข้าถึงได้โดย www.xxxx.com/d.html
ในการควบคุมแคตตาล็อกที่สามารถเข้าถึงได้โดยคุกกี้คุณต้องใช้พารามิเตอร์เส้นทางเพื่อตั้งค่าคุกกี้
document.cookie = "name = value; path = cookiedir";
Cookiedir แสดงถึงแคตตาล็อกของการเข้าถึงคุกกี้ ตัวอย่างเช่น:
document.cookie = "userId = 320; path =/shop";
หมายความว่าคุกกี้ปัจจุบันสามารถใช้ในไดเรกทอรีสั้น ๆ เท่านั้น
หากคุณต้องการให้คุกกี้ใช้ภายใต้เว็บไซต์ทั้งหมดคุณสามารถระบุ cookie_dir เป็นไดเรกทอรีรากเช่น:
document.cookie = "userId = 320; path =/";
ระบุชื่อโฮสต์ที่สามารถเข้าถึงคุกกี้
คล้ายกับเส้นทางชื่อโฮสต์หมายถึงโฮสต์ที่แตกต่างกันในโดเมนเดียวกันเช่น: www.google.com และ gmail.google.com เป็นสองชื่อโฮสต์ที่แตกต่างกัน โดยค่าเริ่มต้นคุกกี้ที่สร้างขึ้นในโฮสต์ไม่สามารถเข้าถึงได้ภายใต้โฮสต์อื่น แต่สามารถควบคุมได้โดยพารามิเตอร์โดเมนเพื่อควบคุมรูปแบบไวยากรณ์คือ:
document.cookie = "name = value; domain = cookomain";
ใช้ Google เป็นตัวอย่าง
document.cookie = "name = value; domain =. google.com";
ด้วยวิธีนี้โฮสต์ภายใต้ Google.com ทั้งหมดสามารถเข้าถึงคุกกี้ได้
ตัวอย่างที่ครอบคลุม: การสร้างฟังก์ชั่นการประมวลผลคุกกี้ทั่วไป
กระบวนการประมวลผลของคุกกี้มีความซับซ้อนมากขึ้นและมีความคล้ายคลึงกันบางอย่าง ดังนั้นสามารถกำหนดฟังก์ชั่นหลายอย่างเพื่อให้การดำเนินการทั่วไปของคุกกี้เสร็จสมบูรณ์เพื่อให้ได้การใช้รหัสซ้ำ การดำเนินการคุกกี้ที่ใช้กันทั่วไปและการใช้งานฟังก์ชั่นแสดงอยู่ด้านล่าง
1. เพิ่มคุกกี้: addcookie (ชื่อ, ค่า, Expirehouse)
ฟังก์ชั่นนี้ได้รับ 3 พารามิเตอร์: ชื่อคุกกี้ค่าคุกกี้และชั่วโมงที่จะหมดอายุในภายหลัง เวลาหมดอายุไม่ได้ตั้งค่าเมื่อ Expirehouse เป็น 0 นั่นคือคุกกี้จะหายไปโดยอัตโนมัติเมื่อเบราว์เซอร์ปิด ฟังก์ชั่นนี้ถูกนำไปใช้ดังนี้:
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
-
ฟังก์ชั่น addCookie (ชื่อ, ค่า, expirehouse) {
var cookring = name+"="+escape (value);
// พิจารณาว่ามีการตั้งค่าเวลาหมดอายุหรือไม่
if (expirehouse> 0) {{
วันที่ var = วันที่ใหม่ ();
Date.settime (date.getTime+Expirehouse*3600*1000);
cookring = cookiestring+"; expire ="+date.togmtring ();
-
document.cookie = cookiestring;
-
-
</script>
2. รับค่าคุกกี้ของชื่อที่ระบุ: getCookie (ชื่อ)
ฟังก์ชั่นนี้ส่งคืนชื่อคุกกี้ชื่อชื่อ
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
-
ฟังก์ชั่น getCookie (ชื่อ) {
var strcookie = document.cookie;
var arrcookie = strcookie.split (";");
สำหรับ (var i = 0; i <arrcookie.length; i ++) {
var arr = arrcookie [i] .split ("=");
if (arr [0] == ชื่อ) return arr [1];
-
กลับ "" ";
-
-
</script>
3. ลบคุกกี้ด้วยชื่อที่ระบุ: deleteCookie (ชื่อ)
ฟังก์ชั่นนี้สามารถลบคุกกี้ของชื่อที่ระบุและการใช้งานของมันมีดังนี้:
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
-
ฟังก์ชั่น getCookie (ชื่อ) {
var strcookie = document.cookie;
var arrcookie = strcookie.split (";");
สำหรับ (var i = 0; i <arrcookie.length; i ++) {
var arr = arrcookie [i] .split ("=");
if (arr [0] == ชื่อ) return arr [1];
-
กลับ "" ";
-
-
</script>
คุณสามารถใช้ออนไลน์อื่น:
คัดลอกรหัสรหัสดังนี้:
<script language = "javascript" type = "text/javascript">
ฟังก์ชั่น setCookie (ชื่อ, ค่า) // พารามิเตอร์สองพารามิเตอร์หนึ่งคือชื่อของคุกกี้อีกอันคือค่า
-
var days = 30;
var exp = วันที่ใหม่ ();
exp.settime (exp.getTime () + วัน*24*60*60*1000);
document.cookie = name + "=" + escape (value) + "; expires =" + exp.togmtring ();
-
ฟังก์ชั่น getCookie (ชื่อ) // ใช้ฟังก์ชันคุกกี้
-
var anrr = document.cookie.match (ใหม่ regexp ("(" (^|) "+ชื่อ+" = ([^;]*) (; | $) "))));
ถ้า (arr! = null) return unescape (arr [2]);
-
ฟังก์ชั่น delcookie (ชื่อ) // ลบคุกกี้
-
var exp = วันที่ใหม่ ();
exp.settime (exp.getTime () - 1);
var cval = getCookie (ชื่อ);
if (cval! = null) document.cookie = name+"="+cval+"; expires ="+exp.togmtstring ();
-
SetCookie ("Xiaoqi", "3")
การแจ้งเตือน (GetCookie ('Xiaoqi');
</script>