如何在Javascript中保存带有换行符的cookie?

6
我将尝试使用Javascript将textarea的值保存到cookie中。
当用户输入多行文本时出现问题。只有第一行被保存,随后的指令会被忽略。
例如:
var myText = $('#mytextarea').val();
document.cookie = "mycookie=" + myText + "; path=/;"

如果myText中包含\n字符,则说明用户在文本区域中输入了多行文本,那么除第一行外的所有行都不会被保存在cookie中,并且path=/;也将被忽略。

1
你可能需要双重转义反斜杠,以便在字符串中存储 \\n。然后在读取 cookie 时,将其从 \\n 处理回 \n - Sly_cardinal
2个回答

10

1
我所做的是将换行符"\n"替换为另一个字符,例如反斜杠“\”,我确信这个字符不会被使用。
var myText = $('#mytextarea').val();
var myCookieValue = myText.split('\n').join('\\');
document.cookie = "mycookie=" + myCookieValue + "; path=/;"

当您阅读cookie时,只需进行反向转换:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接