Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中获取和设置cookie_Javascript_Cookies - Fatal编程技术网

如何在JavaScript中获取和设置cookie

如何在JavaScript中获取和设置cookie,javascript,cookies,Javascript,Cookies,通过JavaScript获取和设置Cookies感觉有点奇怪,如下所示: Set:document.cookie=“=[;过期=[;路径=]” 获取:解析document.cookie 我找到了这个get和set函数 有没有更优雅、更简单的方法呢?您可以使用一些简单的函数,如setCookie()和getCookie() 您可以使用以下调用设置cookie: setCookie('myName','value', 3); 函数setCookie(名称、值、天数){ var=”; 如果(天){

通过JavaScript获取和设置Cookies感觉有点奇怪,如下所示:

Set:
document.cookie=“=[;过期=[;路径=]”

获取:解析document.cookie

我找到了这个get和set函数


有没有更优雅、更简单的方法呢?

您可以使用一些简单的函数,如
setCookie()
getCookie()

您可以使用以下调用设置cookie:

setCookie('myName','value', 3);
函数setCookie(名称、值、天数){
var=”;
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
expires=“;expires=“+date.toutString();
}
document.cookie=name+“=”+(值| |“”)+expires+“path=/”;
}
函数getCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
ES6方法是:

const setCookie = (cookieKey, cookieValue, expirationDays) => {
  let expiryDate = '';

  if (expirationDays) {
    const date = new Date();

    date.setTime(`${date.getTime()}${(expirationDays || 30 * 24 * 60 * 60 * 1000)}`);

    expiryDate = `; expiryDate=" ${date.toUTCString()}`;
  }

  document.cookie = `${cookieKey}=${cookieValue || ''}${expiryDate}; path=/`;
}

const getCookie = (cookieKey) => {
  let cookieName = `${cookieKey}=`;

  let cookieArray = document.cookie.split(';');

  for (let cookie of cookieArray) {

    while (cookie.charAt(0) == ' ') {
          cookie = cookie.substring(1, cookie.length);
      }

    if (cookie.indexOf(cookieName) == 0) {
          return cookie.substring(cookieName.length, cookie.length);
      }
  }
}

所以没有比这更优雅的方法了?getter和setter本质上与我在W3C上发现的相同。org@Pilan:此外,Mozilla还提供了一个-一旦包含在页面中,您可以使用:
docCookies.setItem(名称、值)设置cookie
这可能是实现这一点的最优雅的方法。您可以使用
document.cookie.split(“;”).map(c=>c.trimlefit())代替
while
循环