如何在JavaScript中使用换行符保存Cookie?

时间:2018-07-03 00:22:24

标签: javascript cookies

我正在尝试使用Javascript将textarea的值保存到cookie中。

当用户输入多行时出现问题。仅保存第一行,而忽略后续指令。

例如

var myText = $('#mytextarea').val();
document.cookie = "mycookie=" + myText + "; path=/;"

如果myText包含\n字符(如果用户在textarea字段中输入了多行,则它会执行此操作),则不仅其余行未存储在cookie中,而且{{ 1}}被忽略。

2 个答案:

答案 0 :(得分:3)

除了我对转义换行的评论外,MDN cookie documentationWrite a new cookie部分中有以下注释:

  

cookie值字符串可以使用encodeURIComponent()来确保该字符串不包含任何逗号,分号或空格(在cookie值中是不允许的)。

然后,您可以在读取Cookie值时使用decodeURIComponent()来获取原始文本。

答案 1 :(得分:0)

我要做的是将换行符“ \ n”替换为另一个我确定不会使用的字符,例如“ \”(反斜杠)。

var myText = $('#mytextarea').val();
var myCookieValue = myText.split('\n').join('\\');
document.cookie = "mycookie=" + myCookieValue + "; path=/;"

当您读取cookie时,只需进行反向转换即可:

var cookie = rawValue.split('\\').join('\n');