Tutorial JS

JS INICIO JS Introducción JS Dónde Salida JS Declaraciones JS Sintaxis JS Comentarios JS Variables JS JS Vamos Constante JS Operadores JS Aritmética JS Tarea JS Tipos de datos JS Funciones JS Objetos JS Eventos JS Cadenas JS Métodos de cadena JS Búsqueda de cadenas JS Plantillas de cadena JS Números JS Métodos numéricos JS Matrices JS Métodos de matriz JS Clasificación de matriz JS Iteración de matriz JS Constante de matriz JS Fechas JS Formatos de fecha JS Métodos de obtención de fecha JS Métodos de configuración de fechas JS Matemáticas JS JS al azar Booleanos JS Comparaciones JS Condiciones JS Interruptor JS Bucle JS para Bucle JS para entrada Bucle JS para de Bucle JS mientras descanso JS Iterables JS Conjuntos JS Mapas JS JS Tipo de Conversión de tipo JS JS bit a bit JS expresión regular Errores JS Alcance JS JS Elevación Modo estricto JS JS esta palabra clave Función de flecha JS Clases JS JSJSON Depuración JS Guía de estilo JS Prácticas recomendadas de JS Errores JS Rendimiento JS Palabras reservadas de JS

Versiones JS

Versiones JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Borde Historia de JS

Objetos JS

Definiciones de objetos Propiedades del objeto Métodos de objeto Visualización de objetos Accesores de objetos Constructores de objetos Prototipos de objetos Objeto iterables Conjuntos de objetos Mapas de objetos Referencia de objeto

Funciones JS

Definiciones de funciones Parámetros de función Invocación de función Llamada de función Función Aplicar Cierres de funciones

Clases JS

Introducción a la clase Herencia de clase Clase estática

JS asíncrono

Devoluciones de llamada JS JS asíncrono Promesas JS JS asíncrono/espera

JS HTML DOM

Introducción al DOM Métodos DOM Documento DOM Elementos DOM DOM HTML Formularios DOM DOM CSS Animaciones DOM Eventos DOM Oyente de eventos DOM Navegación DOM Nodos DOM Colecciones DOM Listas de nodos DOM

Lista de materiales del navegador JS

Ventana JS Pantalla JS Ubicación de JS Historia de JS Navegador JS Alerta emergente JS Tiempo JS Galletas JS

API web de JS

Introducción a la API web API de formularios web API de historial web API de almacenamiento web API de trabajo web API de búsqueda web API de geolocalización web

JS AJAX

Introducción a AJAX AJAX XMLHttp Solicitud AJAX Respuesta AJAX Archivo XML AJAX AJAXPHP Ajax ASP Base de datos AJAX Aplicaciones AJAX Ejemplos de AJAX

JSJSON

Introducción JSON Sintaxis JSON JSON frente a XML Tipos de datos JSON Análisis JSON Cadena JSON Objetos JSON Matrices JSON Servidor JSON JSONPHP JSONHTML JSON JSONP

JS frente a jQuery

Selectores jQuery HTML de jQuery CSS de jQuery DOM de jQuery

Gráficos JS

Gráficos JS Lienzo JS JS Trazado Gráfico JS.js Gráfico de Google JS JS D3.js

Ejemplos de JS

Ejemplos de JS JS HTML DOM Entrada HTML JS Objetos JS HTML Eventos JS HTML Navegador JS Editor JS Ejercicios JS Prueba JS Certificado JS

Referencias JS

Objetos JavaScript Objetos HTML DOM


Cookies JavaScript


Las cookies le permiten almacenar información del usuario en las páginas web.


¿Qué son las cookies?

Las cookies son datos, almacenados en pequeños archivos de texto, en su computadora.

Cuando un servidor web ha enviado una página web a un navegador, la conexión se cierra y el servidor se olvida de todo sobre el usuario.

Las cookies se inventaron para resolver el problema "cómo recordar información sobre el usuario":

  • Cuando un usuario visita una página web, su nombre puede almacenarse en una cookie.
  • La próxima vez que el usuario visite la página, la cookie "recordará" su nombre.

Las cookies se guardan en pares de nombre-valor como:

username = John Doe

Cuando un navegador solicita una página web de un servidor, las cookies que pertenecen a la página se agregan a la solicitud. De esta forma, el servidor obtiene los datos necesarios para "recordar" información sobre los usuarios.

Ninguno de los ejemplos a continuación funcionará si su navegador tiene desactivado el soporte de cookies locales.


Crear una cookie con JavaScript

JavaScript puede crear, leer y eliminar cookies con la document.cookie propiedad.

Con JavaScript, se puede crear una cookie como esta:

document.cookie = "username=John Doe";

También puede agregar una fecha de caducidad (en hora UTC). Por defecto, la cookie se elimina cuando se cierra el navegador:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

Con un parámetro de ruta, puede decirle al navegador a qué ruta pertenece la cookie. Por defecto, la cookie pertenece a la página actual.

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";


Leer una cookie con JavaScript

Con JavaScript, las cookies se pueden leer así:

let x = document.cookie;

document.cookiedevolverá todas las cookies en una cadena como: cookie1=valor; galleta2=valor; cookie3=valor;


Cambiar una cookie con JavaScript

Con JavaScript, puede cambiar una cookie de la misma manera que la crea:

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

La cookie anterior se sobrescribe.


Eliminar una cookie con JavaScript

Eliminar una cookie es muy sencillo.

No tiene que especificar un valor de cookie cuando elimina una cookie.

Simplemente establezca el parámetro de expiración en una fecha pasada:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

Debe definir la ruta de la cookie para asegurarse de eliminar la cookie correcta.

Algunos navegadores no le permitirán eliminar una cookie si no especifica la ruta.


La cadena de galletas

La document.cookiepropiedad parece una cadena de texto normal. Pero no lo es.

Incluso si escribe una cadena completa de cookies en document.cookie, cuando la vuelva a leer, solo podrá ver el par nombre-valor.

Si configura una nueva cookie, las cookies anteriores no se sobrescriben. La nueva cookie se agrega a document.cookie, por lo que si vuelve a leer document.cookie obtendrá algo como:

galleta1 = valor; cookie2 = valor;

     

Si desea encontrar el valor de una cookie específica, debe escribir una función de JavaScript que busque el valor de la cookie en la cadena de la cookie.


Ejemplo de cookies de JavaScript

En el ejemplo a seguir, crearemos una cookie que almacena el nombre de un visitante.

La primera vez que un visitante llega a la página web, se le pedirá que introduzca su nombre. A continuación, el nombre se almacena en una cookie.

La próxima vez que el visitante llegue a la misma página, recibirá un mensaje de bienvenida.

Para el ejemplo crearemos 3 funciones de JavaScript:

  1. Una función para establecer un valor de cookie
  2. Una función para obtener un valor de cookie.
  3. Una función para comprobar el valor de una cookie.

Una función para establecer una cookie

Primero, creamos una functionvariable que almacena el nombre del visitante en una cookie:

Ejemplo

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  let expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

Ejemplo explicado:

Los parámetros de la función anterior son el nombre de la cookie (cname), el valor de la cookie (cvalue) y el número de días hasta que caduque la cookie (exdays).

La función establece una cookie sumando el nombre de la cookie, el valor de la cookie y la cadena de expiración.


Una función para obtener una cookie

Luego, creamos una functionque devuelve el valor de una cookie específica:

Ejemplo

function getCookie(cname) {
  let name = cname + "=";
  let decodedCookie = decodeURIComponent(document.cookie);
  let ca = decodedCookie.split(';');
  for(let i = 0; i <ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

Función explicada:

Tome el nombre de la cookie como parámetro (cname).

Cree una variable (nombre) con el texto a buscar (cname + "=").

Decodificar la cadena de cookies, para manejar cookies con caracteres especiales, por ejemplo, '$'

Divida document.cookie en punto y coma en una matriz llamada ca (ca = decodedCookie.split(';')).

Recorra la matriz ca (i = 0; i < ca.length; i++) y lea cada valor c = ca[i]).

Si se encuentra la cookie (c.indexOf(name) == 0), devuelva el valor de la cookie (c.substring(name.length, c.length).

Si no se encuentra la cookie, devuelva "".


Una función para verificar una cookie

Por último, creamos la función que comprueba si se ha establecido una cookie.

Si la cookie está configurada, mostrará un saludo.

Si la cookie no está configurada, mostrará un cuadro de aviso, solicitando el nombre del usuario, y almacena la cookie de nombre de usuario durante 365 días, llamando a la setCookiefunción:

Ejemplo

function checkCookie() {
  let username = getCookie("username");
  if (username != "") {
   alert("Welcome again " + username);
  } else {
    username = prompt("Please enter your name:", "");
    if (username != "" && username != null) {
      setCookie("username", username, 365);
    }
  }
}

Todos juntos ahora

Ejemplo

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  let expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  let name = cname + "=";
  let ca = document.cookie.split(';');
  for(let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  let user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

El ejemplo anterior ejecuta la checkCookie()función cuando se carga la página.