利用cookie實現HTML間簡單的信息傳遞,中文字符亂碼

通常cookie和session,是web開發中用於存儲信息的對象,session存在於服務器的內存中,而cookie則是存在客戶端,所以js可以直接操作cookie進行信息的存儲和讀取。
利用cookie存儲簡單信息,解決不同頁面之間無法傳遞參數的問題(全局變量也無法在不同頁面之間進行共享)。用於用戶是否登錄的判斷,從而實現不同用戶權限的劃分。
遇到中文名字保存出現亂碼,降escape(name)等,註釋掉可以解決。

 //保存cookie
 function addCookie(name, value, days, path) {	/**添加設置cookie**/
    var name = escape(name);
    var value = escape(value);
    var expires = new Date();
    expires.setTime(expires.getTime() + days * 3600000 * 24);
    //path=/,表示cookie能在整個網站下使用,path=/temp,表示cookie只能在temp目錄下使用
    path = path == "" ? "" : ";path=" + path;
    //GMT(Greenwich Mean Time)是格林尼治平時,現在的標準時間,協調世界時是UTC
    //參數days只能是數字型
    var _expires = (typeof days) == "string" ? "" : ";expires=" + expires.toUTCString();
    document.cookie = name + "=" + value + _expires + path;
}
function getCookieValue(name) {	/**獲取cookie的值,根據cookie的鍵獲取值**/
    //用處理字符串的方式查找到key對應value
    var name = escape(name);
    //讀cookie屬性,這將返回文檔的所有cookie
    var allcookies = document.cookie;
    //查找名爲name的cookie的開始位置
    name += "=";
    var pos = allcookies.indexOf(name);
    //如果找到了具有該名字的cookie,那麼提取並使用它的值
    if (pos != -1) {                                             //如果pos值爲-1則說明搜索"version="失敗
        var start = pos + name.length;                  //cookie值開始的位置
        var end = allcookies.indexOf(";", start);        //從cookie值開始的位置起搜索第一個";"的位置,即cookie值結尾的位置
        if (end == -1) end = allcookies.length;        //如果end值爲-1說明cookie列表裏只有一個cookie
        var value = allcookies.substring(start, end); //提取cookie的值
        return (value);                           //對它解碼      
    } else {	//搜索失敗,返回空字符串
        return "";
    }
}
 addCookie("login","1",1,"/");

在這裏插入圖片描述
參考:
https://blog.csdn.net/zyujie/article/details/8727828

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章