註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
JavaScript
» (教學第28篇) 使用 Cookies 下篇
返回列表
下一主題
上一主題
發帖
[教學]
(教學第28篇) 使用 Cookies 下篇
小誌
發短消息
加為好友
小誌
(小誌)
當前離線
曾經也是水電工
UID
9
帖子
1195
主題
395
精華
113
積分
1747
金錢
1747
點名
0
作業系統
Vista
軟體版本
Office 2003
閱讀權限
200
性別
男
來自
台灣
在線時間
491 小時
註冊時間
2010-5-1
最後登錄
2025-5-11
暱稱:
小誌
頭銜:
曾經也是水電工
管理員
帖子
1195
主題
395
精華
113
積分
1747
點名
0
作業系統
Vista
軟體版本
Office 2003
閱讀權限
200
性別
男
來自
台灣
註冊時間
2010-5-1
最後登錄
2025-5-11
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 2010-5-19 08:08
|
只看該作者
[教學]
(教學第28篇) 使用 Cookies 下篇
Cookies
,
下篇
讀取
Cookies
在一個Cookie檔案內可以包含多個Cookies資訊,所以,當我們要讀取某個Cookies資訊時可就累了,必須要在Cookie檔案內進行搜尋。同時,一個Cookies資訊裡還包含Cookies的名稱及它所代表的資料值,我們還得分解名稱與資料值,假設在我們Cookie檔案內的內容如下:
myname=charles; age=30
複製
代碼
在這個Cookie檔案內有兩個Cookies:一個是「myname」,它的值為「charles」;另一個是「myname」,它的值為「30」,而兩個Cookies之間是使用一個分號及一個空白(space)來區隔。
那如果我要取「myname」這個Cookies的值「charles」該
如何
處理?
位置搜尋法
我們來建立一個擷取Cookies值的函式,假設這個擷取函式的名稱為getValue(),當我們想要得知某個Cookies的值時,只要呼叫getValue()函式,同時在呼叫時傳遞一個Cookies的名稱給getValue()函式,getValue()函式就會取得此Cookies的值:
Cookies擷取函式
function getValue(cookiesname)
{
cookiesname = cookiesname + “=”
if (document.cookie.length > 0)
}
position = document.cookie.indexOf(cookiesname)
if (position != -1)
{
position = position + cookiesname.length
endposition = document.cookie.indexOf(“;” , position)
if (endposition == -1)
{
endposition = document.cookie.length
}
return unescape(document.cookie.substring(position,endposition))
}
}
return null
}
複製代碼
程式碼第3行,將我們要
尋找
的Cookies名稱再加上一個等號「=」,因為等號之後的內容才是Cookies的值。
在搜尋與擷取Cookies的值之前,我們先判斷Cookie檔案中是否存在Cookies資訊,當Cookie檔案長度大於0,代表檔案內有Cookies存在,才開始執行搜尋與擷取Cookies的動作(程式碼第4行)。
程式碼第5行,接著利用indexOf()函式開始搜尋Cookies的位置,並將搜尋後的Cookies名稱位置設定給
變數
position。
程式碼第6行,先判斷搜尋Cookies名稱的結果,如果變數position不等於-1,代表我們要搜尋的Cookies存在,此時才開始進行Cookies值的擷取工作。
程式碼第8行,為何要將position變數值加上Cookies名稱(現在是:Cookies名=)的長度?因為等號之後的內容才是Cookies的值,position變數值加上Cookies名稱的長度,才是擷取Cookies值的起始位置!
程式碼第9行,決定擷取Cookies值的終止位置,因為每個Cookies的尾端都會有一個分號「;」作為結束點,所以,我們只要由Cookies值的起始位置往後找到分號,就可得到Cookies值的終止位置。
程式碼第10到13行,這是預防我們要找的Cookies剛好是全部Cookies中的最後一個,如果是最後一個,那麼Cookies值的尾端就不會有一個分號「;」,所以Cookies值的終止位置就剛好是Cookie檔案的長度。
程式碼第14行,擷取Cookies值起始位置至Cookies值終止位置的Cookies值。
實例學習:
將寫入的瀏覽者姓名擷取出來。
<
HTML
>
<HEAD>
<TITLE>擷取Cookies</TITLE>
</HEAD>
<BODY>
<SCRIPT Language="
JavaScript
">
//Cookies值擷取函式
function getValue(cookiesname)
{
cookiesname = cookiesname + "="
if (document.cookie.length > 0)
{
position = document.cookie.indexOf(cookiesname)
if (position != -1)
{
position = position + cookiesname.length
endposition = document.cookie.indexOf(";" , position)
if (endposition == -1)
{
endposition = document.cookie.length
}
return unescape(document.cookie.substring(position,endposition))
}
}
return null
}
//呼叫Cookies值擷取函式
name=getValue("username")
//將取出的Cookies顯示出來
alert ("你的名字是:" + name)
</SCRIPT>
</BODY>
</HTML>
複製代碼
下載
(34.39 KB)
2010-5-19 08:08
提示!!
Escape函式會將特殊字元或符號以對應的escape字串替代,若我們要還原這些特殊字元或符號則可以使用unscape函式將其還原。
樓主熱帖
論壇不讓資歷比較淺的人下載查看附件的用意
EXCEL專屬討論區自即日起限中學生以上會員方
麻辣家族討論區 通用版規
OFFICE 基礎教學數位化
ATX 電源供應器手動啟動(不接主機板啟動)
考慮關閉論壇網站
麻辣家族討論區隱私權政策說明
麻辣家族討論區 誠徵版主
由舊論壇轉進的中學生等級以上會員,請關注!
14-2 資料庫圖片存取
收藏
分享
心安,平安
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!
小誌
發短消息
加為好友
小誌
(小誌)
當前離線
曾經也是水電工
UID
9
帖子
1195
主題
395
精華
113
積分
1747
金錢
1747
點名
0
作業系統
Vista
軟體版本
Office 2003
閱讀權限
200
性別
男
來自
台灣
在線時間
491 小時
註冊時間
2010-5-1
最後登錄
2025-5-11
暱稱:
小誌
頭銜:
曾經也是水電工
管理員
帖子
1195
主題
395
精華
113
積分
1747
點名
0
作業系統
Vista
軟體版本
Office 2003
閱讀權限
200
性別
男
來自
台灣
註冊時間
2010-5-1
最後登錄
2025-5-11
2
#
發表於 2010-5-19 08:10
|
只看該作者
刪除Cookies
要將Cookies刪除方法很簡單,只要將Cookies的到期日設定為「過去的日期」即可,所謂的「過去的日期」就是比你目前系統時間還早的日期啦!但是,你所要更新的Cookies名稱必須與你要刪除的Cookies名稱相同!
假設你的機器裡有一個Cookies它的名稱是testCookies,現在你要把它刪除了:
cookiesname=”testCookies”
deltime=”Thu, 29 Sep 1990 00:00:01 GMT”
document.cookie = cookiesname + ”=; expires=” + deltime
複製代碼
注意喔!deltime變數內的日期是格林威治格式,而且是要比你系統時間更早的日期。
如果你覺得每次刪除Cookies都要寫一長串的日期很煩,那就把刪除Cookies的敘述寫成一個函式吧!當你要刪除Cookies的時候,就呼叫函式並傳給函式一個Cookies名稱就可以將該Cookies刪除了,如下面這個clear()函式:
function clear(cookiesname)
{
document.cookie = cookiesname + ”=; expires= Thu, 29 Sep 1990 00:00:01 GMT”
}
複製代碼
clear()函式只是將你想刪除的Cookies值清除,並把到期日設定為以前的時間而已,你不要以為這樣Cookies就不見了呦!還要等你將瀏覽器關閉之後,它才會真正的消失。
心安,平安
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!
TOP
靜思自在 :
【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表
下一主題
上一主題
Excelㄧ般區
生活與感動
Word
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲