我正在创建一个网页,其中包含一个表单,用于保存您在Cookie中输入的数据,以防您在提交之前意外关闭标签或离开。
我想知道是否有办法允许空格和冒号进入我的cookie数据?例如,如果用户键入“test test”,则刷新时cookie将被存储并显示为“test%2520test”。类似地,冒号显示为“%3A”。我相信这可以使用encodeURIComponent
,但我不确定如何。下面我将包括我的saveVideo, setCookie, and readCookie
JS函数以及示例输入字段。
此外,红利问题:提交表单后删除每个Cookie数据的最佳方式是什么?
<input id="video" name="video" type="text" onchange="saveVideo(this.value);"/>
function saveVideo(cookieValue)
{
var sel = document.getElementById('video');
saveclass = saveclass ? saveclass : document.body.className;
document.body.className = saveclass + ' ' + sel.value;
setCookie('video', cookieValue, 1 );
}
function setCookie(cookieName, cookieValue, nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0)
nDays=1;
expire.setTime(today.getTime() + 60 * 60 * 1000);
document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
</script>
非常感谢任何提示,指示,一般帮助!
答案 0 :(得分:1)
readCookie
函数中的以下内容即可
return decodeURIComponent(c.substring(nameEQ.length, c.length));