1. 程式人生 > >JS Cookie 儲存多個引數和根據名稱取值

JS Cookie 儲存多個引數和根據名稱取值

在網上搜索了很多JS cookie儲存多個引數的寫法,大多數都是用字串通過分號隔開儲存,試驗之後發現滿足不了要求,

我儲存多個引數,最終讀取時只有一個引數, 於是又找到下面這種方法:

cookie改變它的賦值並不意味著丟失原來的值:

   document.cookie = "provinceId=" + escape(areaData.provinceId);

   等同於  document.addcookie 

///在 cookie 變數中儲存

function setAreaCookie(areaData, expiredays) {
    var exdate = new Date()
    exdate.setDate(exdate.getDate() + expiredays)
    //cookie改變它的賦值並不意味著丟失原來的值
    document.cookie = "provinceId=" + escape(areaData.provinceId);
    document.cookie = "cityId=" + escape(areaData.cityId);
    document.cookie = "distId=" + escape(areaData.distId);
    document.cookie = "streetId=" + escape(areaData.streetId);
    document.cookie = "neighborhoodId=" + escape(areaData.neighborhoodId);
    document.cookie = "expires=" + exdate.toGMTString();

}

由於JS cookie 沒有直接通過名稱取值的方法,於是自己寫了一個,通過傳入Cookie名稱取值的方法:

//根據名稱獲得Cookie值
function GetCookieByName(name) {
    var startIndex = document.cookie.indexOf(name); //開始索引
    if (startIndex > -1) {
        var tempStr = document.cookie.substring(startIndex, document.cookie.length);
        var endIndex = tempStr.indexOf(";")//結束索引:第一個分號 索引
        var item = tempStr.substring(0, endIndex);
        return item.split("=")[1];
    }
    return "";
}

我的呼叫方法:

///檢查是否已設定 cookie
function getAreaCookie() {
    var areaData = {
        provinceId: GetCookieByName("provinceId"),
        cityId: GetCookieByName("cityId"),
        distId: GetCookieByName("distId"),
        streetId: GetCookieByName("streetId"),
        neighborhoodId: GetCookieByName("neighborhoodId")
    };
    return areaData;  
}

相關推薦

JS Cookie 儲存引數根據名稱

在網上搜索了很多JS cookie儲存多個引數的寫法,大多數都是用字串通過分號隔開儲存,試驗之後發現滿足不了要求,我儲存多個引數,最終讀取時只有一個引數, 於是又找到下面這種方法:cookie改變它的賦值並不意味著丟失原來的值:   document.cookie = "pr

在 Angularjs 中 ui-sref $state.go 如何傳遞單個引數將物件作為引數

二:傳遞多個引數其實也很簡單可以在上面的單個後面直接拼 1:目標頁面定義需要傳的傳輸個數 .state("default.certquery", { url: "/certquery", controller: "certQueryCtrl", params:{"LoginA

Angularjs 中 ui-sref $state.go 如何傳遞單個引數將物件作為引數

一: 如何傳遞單個引數 首先,要在目標頁面定義接受的引數: 傳參, ui-sref: $state.Go: 接收引數, 在目標頁面的controller裡注入 stateParams,然後" stateParams,然後 "stateP

git 儲存使用者名稱密碼

使用git版本管理工具經常碰到一個問題就是不能記住使用者名稱和密碼,尤其是有多個賬號多個管理工具時. Linux/Unix/Mac 系統 新建一個 ~/.netrc 檔案, 將 git 伺服器, 使用者名稱以及密碼記錄在這個檔案, 如下所示: machine yo

Android 在同一個請求中上傳引數檔案

原文地址:http://blog.csdn.net/y150481863/article/details/25201085 專案中多處用到檔案批量上傳功能,今天正好解決了此問題,在此寫出來,以便日後借鑑。 首先,以下架構下的批量檔案上傳可能會失敗或者不會成功:    

高級查詢一起傳向後端

false nth log ext 服務器端 下拉 onf can pro 註意:每個模糊查詢都有一個單獨的方法---》只針對下拉框   java顯示searchData方法(獲取頁面所有的值) /** * 查詢list */ @RequestMapping(value

js 設置復選框選中取消選中

設置 function func value pos true val .ajax alert // 設置選中 function setCheckboxClick(obj) { if(obj == null) { $.messager.alert(‘警告‘

mybatis collectionassociation 傳引數

mybatis3.0版本以上,才可以 <resultMap type="CaseVO" id="processInfoList"> <id column="TEMPLATE_ID" property="taskTemplate.templ

JS呼叫OC簡單例項-傳遞一個或者引數給oc方法

// // ViewController.m // JSCallsOC // // Created by hq on 16/4/19. // Copyright © 2016年 hanqing. All rights reserved. // #import "

使用mybatis時Mapper.xml檔案中如何判斷引數不為空null

第一種:使用where標籤 <select id="***" resultMap="BaseResultMap" parameterType="java.util.Map">select

ajaxFileUpload.js 無重新整理上傳圖片,支援引數同時上傳,支援 ie6-ie10

ajaxFileUpload 無重新整理上傳的原理: 在頁面動態建立 form 表單和 ifram 貞,設定 form 表單提交的目標為 ifram 貞, 將檔案域和要 post 的引數動態寫入 form 表單中,然後提交 from 表單。 通過 window.attach

js 拼接HTML字串 onclick事件傳引數問題

歡迎來到Altaba的部落格  2017年10月27日 問題:煩躁工作讓技術部落格停了好久才更新,實在對不住大家和自己了,今天重新撿起來  直接上原始碼 <!DOCTYPE html> <html lang="en"> <head>

MyBatis學習筆記(六)一對的關聯查詢傳遞引數

首發於我的部落格 和尚的部落格 本文講解一對多的關聯查詢,傳遞多個引數。 1.傳遞多個引數 當你的形參傳遞>1個的時候,parameterType不寫,讓其自動處理 #{值},預設為arg0,arg1…..或param1,param2,,,

開發日誌:onclick呼叫js方法傳遞使用struts標籤獲取的引數

被單引號雙引號這些符號弄到亂了,試了狠多次。。。這個是可行的- -! js del(id,name){ alert(id+"\n"+name); } JSP <img src='images/cross_circle.png' title='刪除' onclick=

mysql在儲存過程中從結果集給引數的辦法

DECLARE var1 DATETIME; DECLARE var2 DATETIME; SELECT    t.f1, t.f2  into var1,var2 FROM    tableName t ; SELECT     class_id1,     atten

給SQL Server儲存過程,傳送陣列引數引數)的變通辦法

        最近在做開發過程中碰到這麼一個糾結的問題,需要同時插入N條資料,不想在程式裡控制,但是SQL Sever又不支援陣列引數.所以只能用變通的辦法了.利用SQL Server強大的字串處理傳把陣列格式化為類似"3500320083208#350060052089

MyBatis傳入引數,傳入陣列列表資料的處理

java定義: List<RoleEx> selectByRoleIdList(@Param("roles")String[] roles); List<RoleEx

C語言中printf函式對引數的計算順序輸出順序

例: [cpp] view plain copy print?#include<stdio.h> void main()   {       int i=2;       printf(”%d,%d,%d,%d,\n”,i++,++i,i,i++);       printf(”%d\n”,

Mapper.xml檔案中如何判斷引數不為空null

第一種:使用where標籤 <select id="***" resultMap="BaseResultMap" parameterType="java.util.Map">select t.* from 表名 t<where><if test=" 傳進來的欄位 != null

【Appnium+C#+Winform自動化測試系列】一、獲取本機連接的設備、啟動Appnium獲取本機啟動的Appnium

net 系列 () 定向 目的 res listening toa 路徑     本系列內容,準備根據所完成的項目為基線,一步一步的把整個設計和實現過程梳理。 先從基本的一些環境問題入手,梳理清楚關於手機設備和Appnium。因為我們在後面的建立Appnium連接時,需要