3

我有一个简单的 html 页面和一个 js 脚本: HTML 页面:

<body>
<input type="text" id = "content">
<button type="button" id="btn"> Save </button>
</body>

Javascript:

$(document).ready( function(){
    var cook = $.cookie('theName',  { path: '/'});
     if ( cook )
        alert(cook); 
    $('#btn').click(function(){
        var theName = $('#content').val();
        alert(v.val());
        $.cookie('theName', theName, { path: '/', expires: 7 });
        alert("Cookie done");
    });
});

图书馆:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"> </script>
<script type="text/javascript" src = "https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"> </script>

它应该保存我的名字,当我点击刷新以显示我的名字时。唯一的问题是当我尝试读取 cookie 时,显示 %5Bobject%20Object%5D 而不是名称。

谢谢你。

4

3 回答 3

5

做:

$(document).ready( function(){
    var cook = $.cookie('theName'); //get from cookie if exists
     if ( cook )
        alert(cook); 
    $('#but').click(function(){
        var theName = $('#content').val();
        alert(theName);
        $.cookie('theName', theName, { expires: 7, path: '/' }); //set the cookie
        alert("Cookie done");
    });
});

更新:

尝试添加:

$.cookie.raw = true;
于 2013-05-03T09:40:58.437 回答
3
var cook = $.cookie('theName',  { path: '/'});

这将使用 的字符串表示形式覆盖 cookie { path: '/'}

要实际检索现有的 cookie,只需传递名称:

var cook = $.cookie('theName');

无论如何,传递路径是没有意义的——如果你在设置 cookie 的路径之外,你根本就不会得到它。

于 2013-05-03T09:57:09.053 回答
0

尝试这个。

<!DOCTYPE html>
<html>
<head>
<script>
function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
var username=getCookie("username");
if (username!=null && username!="")
  {
  alert("Welcome again " + username);
  }
else
  {
  username=prompt("Please enter your name:","");
  if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
  }
}
</script>
</head>
<body onload="checkCookie()">
</body>
</html>

希望这可以帮助。

来源:这里

于 2013-05-03T09:46:08.160 回答