如何在JavaScript中创建cookie?

如何在JavaScript中创建cookie?,javascript,html,cookies,Javascript,Html,Cookies,我正在尝试创建一个cookie来保存文件 名字, 电子邮件, 电话号码, 作业(列表中的选择/字段中的文本)和 两个iphone类型切换按钮的状态,然后在用户下次查看时加载到页面中 我毫无希望地被卡住了。我找不到一个网站可以帮我解释清楚。任何帮助都将是惊人的,谢谢x您可能需要这样一个插件: 或者包括这个脚本 /** * jQuery Cookie plugin * * Copyright (c) 2010 Klaus Hartl (stilbuero.de) * Dual license

我正在尝试创建一个cookie来保存文件

名字, 电子邮件, 电话号码, 作业(列表中的选择/字段中的文本)和 两个iphone类型切换按钮的状态,然后在用户下次查看时加载到页面中


我毫无希望地被卡住了。我找不到一个网站可以帮我解释清楚。任何帮助都将是惊人的,谢谢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";