在localstorage上保存换行符

时间:2012-02-17 06:45:37

标签: jquery local-storage line-breaks

因此,我尝试使用localstorage创建一个简单的便利贴,您可以在其中键入并自动保存。

当我按下linebreak时,我遇到了问题。 Localstorage不适用换行符。

HTML:

<div contenteditable="true" class="s_content">Type something, press linebreak and type something again. Then refresh</div>​

JS:

$('div.s_content').text(localStorage.getItem ("foo"))

$("div.s_content").on("keyup paste", function () {
localStorage.setItem ("foo", $('div.s_content').text())
});​

示例:http://jsfiddle.net/z2e6Y/

尝试输入内容,按回车键并输入更多内容。然后刷新页面。

如何将<br> / line-break应用到localstorage?

2 个答案:

答案 0 :(得分:2)

将.text()调用更改为.html(),它应该可以工作:

$('div.s_content').html(localStorage.getItem ("foo"))

$("div.s_content").on("keyup paste", function () {
   localStorage.setItem ("foo", $('div.s_content').html());
});​

http://jsfiddle.net/k4dWX/3/

由于您使用的是标记,因此内部数据是HTML而不仅仅是文本。因此,您需要使用br或div标记将div.s_content的内容设置为HTML,而不仅仅是换行符。如果要从其他地方提取文本,则需要先将换行符转换为br或div标记。

答案 1 :(得分:0)

我得到了你的问题,

在Ajax调用中保存数据,

传递这样的值,

if u use 
    $('#container').html(); // You ll get html tags with text
    //like this-----------> teste<br><br><br>r
else
    $('#container').text(); //  You ll get only  text
    //like this -----------> tester

try console and check buddy,

console.log('----------->'+$('#container').html());
console.log('----------->'+$('#container').text());


Your coding:

$('div.s_content').text(localStorage.getItem ("foo"))


$("div.s_content").on("keyup paste", function () {
    localStorage.setItem ("foo", $('div.s_content').html()) // changes has to Here text to html
});