如何在JavaScript中创建cookie?
我正在尝试创建一个cookie来保存文件 名字, 电子邮件, 电话号码, 作业(列表中的选择/字段中的文本)和 两个iphone类型切换按钮的状态,然后在用户下次查看时加载到页面中如何在JavaScript中创建cookie?,javascript,html,cookies,Javascript,Html,Cookies,我正在尝试创建一个cookie来保存文件 名字, 电子邮件, 电话号码, 作业(列表中的选择/字段中的文本)和 两个iphone类型切换按钮的状态,然后在用户下次查看时加载到页面中 我毫无希望地被卡住了。我找不到一个网站可以帮我解释清楚。任何帮助都将是惊人的,谢谢x您可能需要这样一个插件: 或者包括这个脚本 /** * jQuery Cookie plugin * * Copyright (c) 2010 Klaus Hartl (stilbuero.de) * Dual license
我毫无希望地被卡住了。我找不到一个网站可以帮我解释清楚。任何帮助都将是惊人的,谢谢x您可能需要这样一个插件: 或者包括这个脚本
/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
用途:
var selector = $('#name');
$.cookie("thename", selector, { path: '/' });
console.log(selector);
我一直在使用jquery cookie,这使得写入和读取cookie非常容易。如果您知道,您应该使用以下插件: 用法: 设置cookie 1:
$.cookie('u cookie','u值')代码>
设置cookie 2:$.cookie('u cookie','u值',{expires:7})代码>
获取cookie:$.cookie('u cookie')代码>
删除cookie:$.removeCookie('u cookie')代码>
编辑
让我们采用以下HTML表单:
<form method="post" action="somefile.php" id="mygreatform">
<input type="text" name="name" id="name"/>
<input type="text" name="email" name="email"/>
<input type="text" name="phone" name="phone"/>
<select name="job" id="job">
<option value="job1">Job 1</option>
<option value="job2">Job 2</option>
</select>
</form>
在另一页上,我们将尝试读取cookie:
$(document).ready(function()
{
var formValuesStr = $.cookie('cookie_name');
if(formValuesStr != null)
{
var formValues = JSON.parse(formValuesStr);
alert('User email : ' + formValues['email']);
}
});
这就是使用纯javascript设置cookie的方法
document.cookie = "cookieName=cookieValue";
将为当前域设置cookie。您必须在某些服务器上运行此代码。如果您只是在浏览器中打开一个html文件,cookie将不起作用。因此,您在构建该cookie的内容时有问题吗?简而言之。我只是不明白它们是如何工作的,或者如何编码。我尝试过的网站添加了太多的代码,但没有太多的信息。你检查过了吗?我不认为有任何解释能比第一个例子更清楚,完整的JS cookie API在页面的其余部分都有清楚的描述。我可能听起来很难理解,但这些都没有意义。我以前从未编写过cookie,尽管我非常感谢您的回答,但我不明白它是如何工作的。将该代码添加到jquery-cookie.js中,并将其包含在文档的头部,以便您可以使用它。然后,在标记中包含$(function(){>})中的3行;注册cookie,然后将其输出到控制台。设置变量选择器='test'以查看它。它相当复杂,您需要非常好地理解DOM才能掌握它。就我个人而言,我建议只吃真正的饼干,更好,不是吗?好的。我可以把它放在一个单独的js文件中,然后链接到头部的html文件吗?当用户下次访问该网站时,输入到“#name”的文本是否仍然存在?因此我只需将“jquery cookie”链接到我的主页,当我需要创建cookie时,我会转到我自己的javascript页面并加上那些代码行?与创建“name”cookie类似,我会将$.cookie(“name”,“'???”,{expires:2000})?我应该为用户输入的“u值”加上什么?好的,我想我明白了。但我仍然有几个问题——你写的“#我的大表单”——是你把表单放进的div还是表单的id?存储多少表单值是否重要?最后两段代码可以放在.js文件中,还是必须是.php?您在表单中所做的操作是否涉及存储cookie代码等的文件?许多感谢信和你放在“提醒”(“用户电子邮件:”+formValues['email']);”的地方,有没有办法改变它,让它全部加载到用户输入的字段中,而不是从中删除它们并设置一个消息框?那么对于cookieName-例如名称cookie-我是否可以将“cookieName”更改为“name”,以便“name”中的值存储在cookie中?var nameValue=//从某处获取名称值//;而不是document.cookie=“name=”+nameValue;对不起,这让我很困惑。在“从某处获取名称值”的位置,可以是javascript代码,用于从#name或类似$.cookie(“#name”)的getCookie对象中检索信息?我真的很抱歉,但这是一个混乱的javascript代码,用于从包含此名称的文本字段中检索信息。您必须将名称设置为“nameValue”变量好的,我想我明白了。所以代码应该是这样的;var nameValue=//获取值的一些js代码//document.cookie='nameValue=cookieValue'??
document.cookie = "cookieName=cookieValue";