2008-09-18 7 views
97

Ejemplo simple: quiero tener algunos elementos en una página (como divs o filas de tablas), y quiero que el usuario haga clic en ellos para seleccionarlos. Eso parece bastante fácil en jQuery. Para guardar los elementos en los que un usuario hace clic sin respaldos de correo del lado del servidor, pensé que una cookie sería una forma sencilla de hacerlo.¿Puede jQuery leer/escribir cookies en un navegador?

  1. ¿Es esta suposición que una cookie está bien en este caso, correcto?
  2. Si es correcto, ¿la API jQuery tiene alguna forma de leer/escribir información de cookies que es mejor que las API JavaScript predeterminadas?

Respuesta

7

Para responder a su pregunta, sí. El otro ha respondido esa parte, pero también parece que estás preguntando si esa es la mejor manera de hacerlo.

Probablemente dependa de lo que esté haciendo. Por lo general, haría que un usuario haga clic en los artículos que desea comprar (ordenar, por ejemplo). Luego presionarían un botón de compra o pago. Luego, el formulario se enviará a una página y procesará el resultado. Podrías hacer todo eso con una cookie pero me resultaría más difícil.

Es posible que desee considerar publicar su segunda pregunta en otro tema.

18

Necesitará el complemento de cookies, que proporciona varias firmas adicionales a la función de cookie.

$.cookie('cookie_name', 'cookie_value') almacena una cookie transitoria (sólo existe dentro del ámbito de esta sesión, mientras que $.cookie('cookie_name', 'cookie_value', 'cookie_expiration") crea una cookie que tendrá una duración de una sesión a -. Ver http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ para más información sobre el plugin de galletas jQuery

Si desea establecer cookies que se utilizan para todo el sitio, tendrá que utilizar JavaScript como esto:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure" 
+1

parece que este enlace está muerto al momento de escribir esto –

11

Un nuevo plugin de jQuery para la recuperación y la manipulación de la galleta con la unión de formas, etc: http://plugins.jquery.com/project/cookies

+3

Para cualquiera que lea el enlace demasiado rápido, observe la 's' al final de la cookie para hacer que esta sea una respuesta diferente a la de Alex Fort – Patrick

+4

Ya no es bueno link – cdeszaq

+2

Aquí hay un mejor enlace en el momento de escribir https://github.com/carhartl/jquery-cookie –

51

La JavaScript por defecto "API" para establecer una cookie es tan fácil como:

document.cookie = 'mycookie=valueOfCookie;expires=DateHere;path=/' 

utilizar el plugin de galletas jQuery como:

$.cookie('mycookie', 'valueOfCookie') 
+14

Sí, escribir cookies es fácil, pero leerlas es un poco doloroso, ya que tienes que dividir cadenas y cosas. Si ya está usando JQuery, entonces el plugin de cookies podría ser bueno ... Una cosa molesta acerca de la lectura de cookies es que algunos navegadores eliminan el punto y coma final y otros no ... es agradable tener a alguien más a cargo todo lo que. –

+8

Ah, y el plugin de cookies JQuery tiene solo 40 líneas de JS ... y puedes editarlo a tu gusto, para que no sientas que estás entrando en la zona de peligro de la abstracción. –

+3

No está relacionado con jQuery según lo solicitado. El comentario de Peter Ajtai muestra por qué casademora solicita el plugin jQuery en lugar de Javascript. – CallMeLaNN

4

Parece que el plugin de galletas jQuery no está disponible para su descarga . Sin embargo, puede descargar el mismo complemento de cookies jQuery con algunas mejoras descritas en jQuery & Cookies (get/set/delete & a plugin).

+0

También me doy cuenta, el desarrollo del plugin de cookies se detuvo allí desde la primera versión y no estoy seguro de si es compatible con jQuery 1.4 * – CallMeLaNN

+0

El complemento es compatible con jQuery 1.4, ya que la sintaxis de extensión no ha cambiado desde entonces ... –

4

se puede navegar por todos los plugins jQuery etiquetados con "cookie" aquí:

http://plugins.jquery.com/plugin-tags/cookies

Un montón de opciones allí.

Eche un vistazo al llamado jQuery Storage, que aprovecha localStorage de HTML5. Si localStorage no está disponible, se establece de forma predeterminada en cookies. Sin embargo, no le permite establecer la caducidad.

2

He logrado escribir una secuencia de comandos que permite al usuario elegir su idioma, utilizando la secuencia de comandos de cookie Klaus Hartl. Me tomó algunas horas de trabajo, y espero poder ayudar a otros.

Cuestiones relacionadas